интеграция потокового API с Django - PullRequest
1 голос
/ 05 февраля 2011

Я пытаюсь создать веб-приложение Django, которое использует API потоковой передачи Twitter через функцию tweepy.Stream ().Мне трудно осмыслить правильную реализацию.

Простейшая функциональность, которую я хотел бы иметь, - это подсчитывать количество твитов, содержащих хэштег, в режиме реального времени.Поэтому я бы открывал поток, фильтруя по ключевым словам, каждый раз, когда новый твит приходит по соединению, я увеличиваю счетчик.Затем этот счетчик отображается на веб-странице и обновляется с помощью AJAX или иным образом.

Проблема заключается в том, что функция tweepy.Stream () должна быть постоянно запущена и подключена к Твиттеру (в этом суть).Как сделать так, чтобы этот поток работал в фоновом режиме приложения Django при увеличении счетчиков, которые могут отображаться в (почти) реальном времени?

Заранее спасибо!

1 Ответ

6 голосов
/ 05 февраля 2011

Есть несколько способов сделать это, но использование библиотеки сообщений ( celery ), вероятно, будет самым простым.

1) Поддерживать процесс Python в твипе. Найдя интересное сообщение, создайте новое задание на сельдерее

2) Внутри этой морковной задачи сохраняются данные в базе данных (счетчик, твиты, что угодно). Эта задача может хорошо выполнять код django (например, ORM).

3) У вас есть обычное приложение django, отображающее результаты вашей задачи.

В качестве меры предосторожности, вероятно, это хороший идеал для запуска процесса tweepy под наблюдением (supervisord может удовлетворить ваши потребности). Если что-то пойдет не так, его можно будет перезапустить автоматически.

...