Мониторинг потока Twitter на веб-сервере - PullRequest
1 голос
/ 30 января 2012

Я написал программу с использованием Tweepy, которую я могу запустить на своем домашнем компьютере для мониторинга потока в Твиттере.Способ, которым Tweepy делает это, в основном состоит в том, чтобы цикл while (true) всегда работал.Теперь я хочу связать эту программу с моим приложением Django.Один из способов сделать это - оставить программу Twitter на локальном компьютере и обновлять базу данных сервера при получении сообщения.Однако мне было интересно, что мне нужно сделать, чтобы запустить программу Twitter в фоновом режиме на моем сервере.Я использую Django.

Ответы [ 2 ]

2 голосов
/ 30 января 2012

Как вы выяснили в своем комментарии, сельдерей не идеален - вам потребуется еще один длительный процесс для мониторинга существующего длительного процесса (ваш клиент).

В идеале вам нужен сокет, который всегда открыт (например, бесконечный цикл while в вашем клиенте); Таким образом, когда бы ни появлялись данные, вы получаете представление в режиме реального времени ленты новостей на веб-странице.

Node.js в сочетании с SocketIO предназначен для решения этой проблемы, и, поскольку просмотрщик в реальном времени в твиттере является распространенным случаем, многие примеры плавают вокруг - streamie является одним из них.

Эта комбинация дает вам клиент javascript, который автоматически обновляется на основе поступающих данных; не требуется обновление, ajax-опрос, cron и т. д.

2 голосов
/ 30 января 2012

Вы можете использовать Celery , который является очередью задач, которая может выполнять задачи в фоновом режиме (т.е. вне цикла запроса / ответа). Он также имеет интеграцию django с django-сельдереем .

Вы можете настроить его для выполнения периодических задач, то есть проверять твиттер каждые 5 минут, используя tweetpy, и сохранять результаты в БД. В качестве альтернативы вы можете настроить задачу, которая запускает операцию, то есть когда пользователь щелкает что-то в веб-приложении, запускает фоновую задачу, чтобы очистить твиттер.

Если вы не хотите заниматься такими проблемами, вы можете просто использовать Cron для выполнения операции каждые X минут или упрощенное приложение очереди. Тем не менее, сельдерей хорошо проверен и надежен и, вероятно, стоит дополнительных усилий

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...