Я написал программу с помощью Tweepy, которую я могу запустить на своем домашнем компьютере, чтобы отслеживать поток Twitter. То, как Tweepy делает это, состоит в том, что всегда выполняется цикл while (true). Теперь то, что я хочу сделать, это связать эту программу с моим приложением Django. Один из способов сделать это - оставить программу Twitter на локальном компьютере и обновить базу данных сервера при получении сообщения. Тем не менее, мне было интересно, что мне нужно, чтобы запустить программу Twitter в фоновом режиме на моем сервере. Я использую Django.Мониторинг потока Twitter на веб-сервере
ответ
Как вы обнаружили с вашим комментарием, сельдерей не идеален - вам понадобится еще один длительный процесс мониторинга существующего долгого процесса (вашего клиента) ,
В идеале вам нужен сокет, который всегда открыт (например, бесконечный цикл while в вашем клиенте); поэтому, если есть данные, вы получаете «реальный» вид твиттера на веб-странице.
Node.js в сочетании с SocketIO предназначен для решения этой проблемы, и поскольку просмотр в реальном времени твиттера в реальном времени является обычным случаем, многие примеры плавают около - streamie является одним из них.
Эта комбинация дает вам javascript-клиент, который автоматически обновляется на основе данных; не требуется обновление, ajax-опрос, cron и т. д.
Вы можете использовать Celery, который представляет собой очередь задач, которая может выполнять задачи в фоновом режиме (то есть вне цикла запроса/ответа). Он также имеет интеграцию django с django-celery.
Вы можете настроить его для выполнения периодических задач, то есть проверить поток twitter каждые 5 минут, используя твиты и сохранить результаты в db. В качестве альтернативы вы можете настроить задачу, которая срабатывает при выполнении операции, то есть когда пользователь нажимает что-либо на веб-сервере, запустите фоновое задание, чтобы очистить твиттер.
Если вы не хотите идти на такие проблемы, вы можете просто использовать Cron для выполнения операции каждые X минут или упрощенного приложения очереди. Тем не менее, сельдерей хорошо протестирован и надежен и, вероятно, стоит дополнительных усилий
- 1. Неавторизованный Twitter Образец потока
- 2. Мониторинг и предупреждение ошибок потока данных
- 3. Мониторинг потока GstBuffer в конвейере GStreamer
- 4. iOS - Мониторинг потока приложений из AppDelegate
- 5. Мониторинг сетевого потока для новых данных
- 6. Мониторинг потока с индикатором dropWizard метрической
- 7. Мониторинг потока RTMP, запись, если таковая имеется
- 8. Возврат API потока Twitter 401
- 9. Изменить ключевые слова фильтра потока Twitter без повторного открытия потока
- 10. Сохранение потока с помощью AnyEvent :: Twitter :: Stream
- 11. Ошибка потока потоковой передачи данных Flume Twitter
- 12. Предотвращение выхода twitter4j при печати потока Twitter
- 13. Tomcat запускает приложение мониторинга потока twitter?
- 14. Получение потока Twitter на Heroku с помощью приложения Django
- 15. Мониторинг сельдерея на Heroku
- 16. Мониторинг приложений на Openshift
- 17. Мониторинг исключений на Azure
- 18. Мониторинг приложений на Zabbix
- 19. Мониторинг HTTPS на Android
- 20. Как отслеживать ключевые слова из Twitter-потока
- 21. Мониторинг потока данных в реальное время с колбами веб-приложением
- 22. Как запустить/остановить мониторинг потока Delphi по запросу?
- 23. Мониторинг переключения контекста pthread
- 24. Мониторинг многопоточного приложения
- 25. .net мониторинг потоков
- 26. SQL Server - запрос на мониторинг
- 27. Программный мониторинг файлов на Windows
- 28. Мониторинг отложенных заданий на Heroku
- 29. Мониторинг ресурсов Windows на Python
- 30. Мониторинг всего вывода на консоль
Мне нравится идея Celery в целом, но если утилите ops не нужно реагировать на какие-либо триггеры из цикла запроса/ответа, и все, что вы собираетесь сделать, установлено и забывает таймер, cron легко решить проблему. Хотя +1 по предложению и здесь. Из описания OPs до сих пор не кажется, что утилита будет иметь реальную выгоду от жизни внутри процесса сервера django. – jdi
Мое голосование за работу cron, так как оно специально не связано с функцией просмотра. Я стараюсь использовать сельдерей только тогда, когда мне приходится из-за дополнительной сложности. –
Да, оба хорошие моменты. Если он просто работает в фоновом режиме без какой-либо ссылки с точки зрения пользователя, то сельдерей определенно будет переполнен –