我正在尝试将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
,我得到了以下响应。
这些是我用来启动RabbitMQ和RabbitMQ命令行的服务
这是我对Celery的Django设置。我尝试在主机之前和之后放置端口和用户名,但是同样的错误。
CELERY_BROKER_URL = 'amqp://localhost//'
CELERY_RESULT_BACKEND = 'amqp://localhost//'
这是什么问题?如何检查RabbitMQ服务是否启动?我需要在Django设置文件中设置什么设置。
答案 0 :(得分:0)
我正在打同样的问题。根据py-amqp中的未解决问题,将amqp降级为2.1.3:
https://github.com/celery/py-amqp/issues/130
pip uninstall amqp
pip install -Iv amqp==2.1.3