2

我正在尝试使用 Celery 设置 Django,以便可以在后台发送大量电子邮件。

我对不同组件如何在 Celery 中发挥作用有点困惑。我需要使用 RabbitMQ 吗?我可以只用“django-kombu”来运行 Celery 吗?(http://ask.github.com/celery/tutorials/otherqueues.html#django-database

我从 django-celery 文档( http://django-celery.readthedocs.org/en/latest/getting-started/first-steps-with-django.html )中的“Django 的第一步”开始,但是当我进入“运行 celery 工作服务器”会发生这种情况:

$ 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...

然后我必须退出这个过程......

4

1 回答 1

4

正如我从您的配置中看到的那样,您没有正确设置传输,实际上 celery 正在尝试使用 amqplib 连接到像 Rabbit MQ 这样的代理

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

您应该在 settings.py 中以这种方式设置代理后端:

BROKER_BACKEND = "djkombu.transport.DatabaseTransport"
于 2011-09-12T06:45:15.247 回答