Сельдерей в Джанго (RabbitMQ против базы данных Джанго) - PullRequest
2 голосов
/ 03 сентября 2011

Я пытаюсь настроить Django с помощью Celery, чтобы я мог отправлять массовые электронные письма в фоновом режиме.

Я немного растерялся из-за того, как различные компоненты играют в Celery.Нужно ли использовать RabbitMQ?Могу ли я просто «Джанго-Комбу» запустить Celery?(http://ask.github.com/celery/tutorials/otherqueues.html#django-database)

Я начал с «Первые шаги с Джанго» в django-celery docs (http://django -celery.readthedocs.org / en / latest / Getting-Start / First-Steps-with-django.html ), но когда я добираюсь до «Запуск сервера сельдерея», это происходит:

$ python manage.py celeryd -l info
[2011-09-02 18:35:00,150: WARNING/MainProcess]  

 -------------- celery@Sauls-MacBook.local v2.3.1
---- **** -----
--- * ***  * -- [Configuration]
-- * - **** ---   . broker:      amqplib://guest@localhost:5672/
- ** ----------   . loader:      djcelery.loaders.DjangoLoader
- ** ----------   . logfile:     [stderr]@INFO
- ** ----------   . concurrency: 2
- ** ----------   . events:      OFF
- *** --- * ---   . beat:        OFF
-- ******* ----
--- ***** ----- [Queues]
 --------------   . celery:      exchange:celery (direct) binding:celery


[Tasks]
  . tasks.add

[2011-09-02 18:35:00,213: INFO/PoolWorker-2] child process calling self.run()
[2011-09-02 18:35:00,214: INFO/PoolWorker-1] child process calling self.run()
[2011-09-02 18:35:00,229: WARNING/MainProcess] celery@Sauls-MacBook.local has started.
[2011-09-02 18:35:00,276: ERROR/MainProcess] Consumer: Connection Error: [Errno 61} Connection refused. Trying again in 2 seconds...
[2011-09-02 18:35:02,283: ERROR/MainProcess] Consumer: Connection Error: [Errno 61] Connection refused. Trying again in 4 seconds...

Затем я должен выйти из процесса ...

1 Ответ

4 голосов
/ 12 сентября 2011

Как видно из вашей конфигурации, вы неправильно настроили транспорт, на самом деле сельдерей пытается использовать amqplib для соединения с брокером, таким как Rabbit MQ

broker:      amqplib://guest@localhost:5672/

Вы должны установить в файле settings.py серверную часть брокера следующим образом:

BROKER_BACKEND = "djkombu.transport.DatabaseTransport"
...