Как структурировать мое приложение для нескольких задач, используя Redis с Gevent или Threading в Python - PullRequest
2 голосов
/ 13 октября 2011

У меня есть процесс, который отправляет данные финансовых тиков через redis pubsub в режиме реального времени. Теперь я хочу, чтобы приложение Python обрабатывало входные данные (json), например, для вычислений типа скользящего среднего и так далее. результаты, которые я хочу отправить обратно через Redis для других задач (делая дальнейшие вычисления на основе результатов 1-го задания). Далее я хочу запускать некоторые задания регулярно один раз в день или каждую секунду. С этой сложной и непредвиденной структурной проблемой я наткнулся на такие решения, как gevent, Celery или просто Threads.

Но что меня интересует, какие у меня есть варианты, чтобы сделать это правильно? Как я могу структурировать мой redis pubsub, выполняя работу Worker / Task наиболее эффективным способом? Итак, приветствуются предложения в отношении библиотек (если вы использовали какой-либо из перечисленных, пожалуйста, поделитесь своим опытом), приемов (Лучшая практика структуры Python), как использовать pubsub в Redis для наилучшего выполнения работы.

1 Ответ

2 голосов
/ 15 октября 2011

Если какой-либо из этих вычислений требует больших вычислительных затрат, и вы делаете их в python, и вам нужна масштабируемость, тогда сельдерей имеет смысл.

gevent просто сделает ваш код более эффективным в определенных случаях, но не поможет вам с точки зрения масштабируемости. Это также верно, если вы используете потоки.

Помните, что вы можете настроить сельдерей для запуска рабочего пула на gevent (или eventlet)

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