Реализация Django / Flask: постоянное прослушивание соединения через HTTP или Socket.(в фоновом режиме) - PullRequest
5 голосов
/ 14 февраля 2011

В настоящее время я планирую веб-приложение, которое требует постоянного прослушивания открытого сокет-соединения и записи определенных вещей в базу данных.

Чтобы познакомиться с flask (фреймворк на мой выбор) и python в целом, я хочу поиграть с twitter-streaming-api.

Основная проблема та же. Как реализовать постоянный «Connection-Listener» для обоих типов соединений?

Является ли предложенный ниже способ наилучшим способом сделать это?

интеграция tweepy Streaming API с Django

Мне почему-то не нравится идея реализовать системный демон на машине.

Редактировать: Конечно, я хочу обслуживать пользователей через HTTP. Все это должно быть неблокирующим.

Ответы [ 2 ]

5 голосов
/ 14 февраля 2011

Если вы хотите, чтобы система была неблокирующей, то ни Flask, ни Django не будут предоставлять необходимую поддержку. Вы, вероятно, должны проверить Twisted, так как это самый зрелый Python-проект для неблокирующих операций ввода-вывода: http://twistedmatrix.com/trac/

Он предоставляет полный набор API для серверов на основе сокетов. Если вам нужно интегрироваться с «обычным» веб-приложением, лучшим выбором будет Django, так как я не верю, что кто-то делал интеграцию с Twisted Flask (я могу ошибаться, просто не видел этого). Вот ссылка, объясняющая, как настроить Django и Twisted в одной среде: http://dreid.org/2009/03/twisted-django-it-wont-burn-down-your.html/

Примечание: системный демон не требуется;)

2 голосов
/ 14 февраля 2011

Я рекомендую Eventlet для действий на основе событий с открытым сокетом.

Другие возможности Python для работы с API Twitter в реальном времени: витая и торнадо .

...