python - django 和 celery+rabbitmq 的消费者连接错误?

标签 python django rabbitmq celery django-celery

我正在尝试使用 django 和 rabbit-mq 设置 celeryd。到目前为止,我已经完成了以下工作:

  • 从 pip 安装 celery
  • 通过其存储库中可用的 deb 安装了 rabbitmq
  • 通过 rabbitmqctl 向 rabbitmq 添加了一个用户和虚拟主机,以及该用户的权限
  • 启动rabbitmq-server
  • 通过 pip 安装了 django-celery
  • 设置 django-celery,包括它的表
  • 在 settings.py 中配置各种内容(BROKER_HOST、BROKER_PORT、BROKER_USER、BROKER_PASSWORD、BROKER_VHOST,以及导入 djecelery、调用设置函数并将其添加到已安装的应用程序中)。我仔细检查过所有这些值都是正确的(至少,用户、密码和虚拟主机是正确的)。

现在,当我运行 python manage.py celeryd -l info 时,出现连接错误(见下文)。有人知道为什么吗?

$ python manage.py celeryd -l info
/usr/local/lib/python2.7/dist-packages/djcelery/loaders.py:108: UserWarning: Using settings.DEBUG leads to a memory leak, never use this setting in production environments!
  warnings.warn("Using settings.DEBUG leads to a memory leak, never "
[2012-05-15 18:38:04,486: WARNING/MainProcess]  

 -------------- celery@ubuntu v2.5.3
---- **** -----
--- * ***  * -- [Configuration]
-- * - **** ---   . broker:      amqp://celeryuser@localhost:5672/celeryhost
- ** ----------   . loader:      djcelery.loaders.DjangoLoader
- ** ----------   . logfile:     [stderr]@INFO
- ** ----------   . concurrency: 1
- ** ----------   . events:      OFF
- *** --- * ---   . beat:        OFF
-- ******* ----
--- ***** ----- [Queues]
 --------------   . celery:      exchange:celery (direct) binding:celery


[Tasks]


[2012-05-15 18:38:04,562: INFO/PoolWorker-1] child process calling self.run()
[2012-05-15 18:38:04,565: WARNING/MainProcess] celery@ubuntu has started.
[2012-05-15 18:38:07,572: ERROR/MainProcess] Consumer: Connection Error: [Errno 104] Connection reset by peer. Trying again in 2 seconds...
^C[2012-05-15 18:38:08,434: WARNING/MainProcess] celeryd: Hitting Ctrl+C again will terminate all running tasks!
[2012-05-15 18:38:08,435: WARNING/MainProcess] celeryd: Warm shutdown (MainProcess)
[2012-05-15 18:38:09,372: INFO/PoolWorker-1] process shutting down
[2012-05-15 18:38:09,373: INFO/PoolWorker-1] process exiting with exitcode 0
[2012-05-15 18:38:09,376: INFO/MainProcess] process shutting down

最佳答案

您的问题在 BROKER_URL 中。

有了额外的VHOST,正确的配置应该是:

BROKER_URL='amqp://celeryuser@localhost:5672//'
BROKER_VHOST='/celeryhost'

关于python - django 和 celery+rabbitmq 的消费者连接错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10610991/

相关文章:

python - 在 Django 中通过电子邮件上传文件。通用算法

windows - Windows Server 2012 R2 上的 RabbitMQ 在启动时崩溃

python - 获取 Pandas DataFrame 可读数据类型

python - 我们如何从 python 访问 PY_SSIZE_T_MAX 值?

python - 在 tomcat 上的 jython 下运行 cx_Oracle

python - 我如何确认 django 正在使用 xampp 的 mysql

jquery - django 弹出窗口,包含表格详细信息

python - Python pyreverse 可以为函数生成 UML 图吗?

java - SpringBoot RabbitMq解析盒子的json消息auto

java - Spring Boot RabbitMQ 接收器 Jackson 反序列化为 POJO