Где разместить потребителя очереди сообщений в Django? - PullRequest
1 голос
/ 11 июля 2009

Я использую Carrot для очереди сообщений в проекте Django и следовал учебнику , и он отлично работает. Но пример запускается в консоли, и мне интересно, как применить это в Django. Класс издателя, которому я звоню из одной из моих моделей в models.py, так что все в порядке. Но я понятия не имею, куда поставить потребительский класс.

Так как он просто сидит там с .wait (), я не знаю, в какой момент или где мне нужно его создать, чтобы он всегда работал и слушал сообщения!

Спасибо!

Ответы [ 2 ]

5 голосов
/ 11 июля 2009

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

Этот сценарий может быть запущен на консоли под вашей учетной записью или настроен как демон unix или служба win32. В производственном процессе вы должны быть уверены, что в случае его смерти он может быть перезапущен и т. Д. (Здесь более подходящим является демон или служба).

Или вы можете снять вызов ожидания и запустить его под планировщиком Windows или в качестве задания cron. Таким образом, он обрабатывает очередь каждые n минут или что-то и выходит. Это действительно зависит от требований вашего приложения, скорости заполнения очереди и т. Д.

Это имеет смысл, или я полностью пропустил то, что вы спрашивали?

0 голосов
/ 21 июля 2009

Если то, что вы делаете, обрабатывает задачи, пожалуйста, проверьте сельдерей: http://github.com/ask/celery/

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