无法在Windows Server上将Celery连接到RabbitMQ

时间:2018-01-09 04:40:20

标签: django rabbitmq celery windows-server-2012-r2

我正在尝试将rabbitMQ设置为用作Celery的消息代理。我试图在Windows Server 2012 R2上设置它们。在应用程序菜单上使用RabbitMQ启动服务启动rabbitMQ服务器后,我尝试使用该命令启动celery应用程序。

celery -A proj worker -l info

上述命令后我收到以下错误。

[2018-01-09 10:03:02,515: ERROR/MainProcess] consumer: Cannot connect to amqp://
guest:**@127.0.0.1:5672//: [WinError 10042] An unknown, invalid, or unsupported
option or level was specified in a getsockopt or setsockopt call.
Trying again in 2.00 seconds...

所以,我尝试调试,检查RabbitMQ服务器的状态,我进入RabbitMQ命令提示符并键入rabbitmqctl status,我得到了以下响应。

Response on checking RabbitMQ status

这些是我用来启动RabbitMQ和RabbitMQ命令行的服务

RabbitMQ services

这是我对Celery的Django设置。我尝试在主机之前和之后放置端口和用户名,但是同样的错误。

CELERY_BROKER_URL = 'amqp://localhost//'
CELERY_RESULT_BACKEND = 'amqp://localhost//'

这是什么问题?如何检查RabbitMQ服务是否启动?我需要在Django设置文件中设置什么设置。

1 个答案:

答案 0 :(得分:0)

我正在打同样的问题。根据py-amqp中的未解决问题,将amqp降级为2.1.3:

https://github.com/celery/py-amqp/issues/130

  1. 使用pip uninstall amqp
  2. 卸载amqp
  3. 使用pip install -Iv amqp==2.1.3
  4. 安装amqp