Python 芹菜-[Errno 111]使用delay()触发芹菜任务时连接被拒绝
我有两个应用服务器(都有django应用程序)。他们都有芹菜工人。RabbitMQ服务器设置在第三个不同的服务器上 当使用Python 芹菜-[Errno 111]使用delay()触发芹菜任务时连接被拒绝,python,django,python-2.7,rabbitmq,celery,Python,Django,Python 2.7,Rabbitmq,Celery,我有两个应用服务器(都有django应用程序)。他们都有芹菜工人。RabbitMQ服务器设置在第三个不同的服务器上 当使用delay()从两个应用程序服务器中的任何一个通过shell执行任何测试任务时,它们都可以正常执行 如果从浏览器(通过ajax)从server1触发相同的任务,那么它会再次正常工作 但对于server2(与server1具有相同的配置和代码),当从浏览器触发相同的任务时,会出现[Error 111]连接拒绝错误 server1或server2上安装的某些软件包包括: cele
delay()
从两个应用程序服务器中的任何一个通过shell执行任何测试任务时,它们都可以正常执行
如果从浏览器(通过ajax)从server1触发相同的任务,那么它会再次正常工作
但对于server2(与server1具有相同的配置和代码),当从浏览器触发相同的任务时,会出现[Error 111]连接拒绝错误
server1或server2上安装的某些软件包包括:
celery 3.1.18
amqp 1.4.9
django 1.8.5
有人能帮我解决这个问题吗?谢谢
错误跟踪如下所示:
File "../lib/python2.7/site-packages/celery/app/task.py" in delay
453. return self.apply_async(args, kwargs)
File "../lib/python2.7/site-packages/celery/app/task.py" in apply_async
559. **dict(self._get_exec_options(), **options)
File "../lib/python2.7/site-packages/celery/app/base.py" in send_task
353. reply_to=reply_to or self.oid, **options
File "../lib/python2.7/site-packages/celery/app/amqp.py" in publish_task
305. **kwargs
File "../lib/python2.7/site-packages/kombu/messaging.py" in publish
172. routing_key, mandatory, immediate, exchange, declare)
File "../lib/python2.7/site-packages/kombu/connection.py" in _ensured
457. interval_max)
File "../lib/python2.7/site-packages/kombu/connection.py" in ensure_connection
369. interval_start, interval_step, interval_max, callback)
File "../lib/python2.7/site-packages/kombu/utils/__init__.py" in retry_over_time
246. return fun(*args, **kwargs)
File "../local/lib/python2.7/site-packages/kombu/connection.py" in connect
237. return self.connection
File "../lib/python2.7/site-packages/kombu/connection.py" in connection
742. self._connection = self._establish_connection()
File "../lib/python2.7/site-packages/kombu/connection.py" in _establish_connection
697. conn = self.transport.establish_connection()
File "../lib/python2.7/site-packages/kombu/transport/pyamqp.py" in establish_connection
116. conn = self.Connection(**opts)
File "../lib/python2.7/site-packages/amqp/connection.py" in __init__
165. self.transport = self.Transport(host, connect_timeout, ssl)
File "../lib/python2.7/site-packages/amqp/connection.py" in Transport
186. return create_transport(host, connect_timeout, ssl)
File "../lib/python2.7/site-packages/amqp/transport.py" in create_transport
299. return TCPTransport(host, connect_timeout)
File "../lib/python2.7/site-packages/amqp/transport.py" in __init__
95. raise socket.error(last_err)
文件“./lib/python2.7/site packages/芹菜/app/task.py”延迟
453返回self.apply\u async(args、kwargs)
apply\u async中的文件“./lib/python2.7/site packages/芹菜/app/task.py”
559. **dict(self.\u get\u exec\u options(),**选项)
发送任务中的文件“./lib/python2.7/site packages/芹菜/app/base.py”
353reply\u to=reply\u to或self.oid,**选项
发布任务中的文件“./lib/python2.7/site packages/芹菜/app/amqp.py”
305. **关键字参数
发布中的文件“./lib/python2.7/site packages/kombu/messaging.py”
172路由(U密钥,强制,立即,交换,声明)
文件“./lib/python2.7/site packages/kombu/connection.py”
457间隔(最大值)
确保连接中的文件“./lib/python2.7/site packages/kombu/connection.py”
369间隔\u开始、间隔\u步骤、间隔\u最大值、回调)
文件“./lib/python2.7/site packages/kombu/utils/\uuuuu init\uuuuuuuuuuu.py”,在重试过程中
246返回乐趣(*args,**kwargs)
connect中的文件“./local/lib/python2.7/site packages/kombu/connection.py”
237返回自连接
连接中的文件“./lib/python2.7/site packages/kombu/connection.py”
742self.\u连接=self.\u建立连接()
文件“./lib/python2.7/site packages/kombu/connection.py”位于建立连接中
697conn=self.transport.building_connection()
建立连接中的文件“./lib/python2.7/site packages/kombu/transport/pyamqp.py”
116conn=自连接(**选项)
init中的文件“./lib/python2.7/site packages/amqp/connection.py”__
165self.transport=self.transport(主机、连接超时、ssl)
传输中的文件“./lib/python2.7/site packages/amqp/connection.py”
186返回创建传输(主机、连接超时、ssl)
文件“./lib/python2.7/site packages/amqp/transport.py”,位于create_transport中
299返回TCPTTransport(主机,连接超时)
文件“./lib/python2.7/site packages/amqp/transport.py”位于__
95提升套接字。错误(上次错误)
我建议在调用server2上的delay之前,先添加一些额外的日志调用,以确保芹菜配置在作为Web服务器运行时是正确的(与manage.py shell实例相反)。听起来gunicorn/uwsgi/apache/magic的启动脚本没有加载实际正确配置芹菜所需的变量。或者它只是在这种情况下被某种方式覆盖了
真正可怕的方法是在server2上以manage.py runserver的形式运行您的Web服务器,并在调用
.delay()
之前在其中放置一个PDB。这并不完全是您希望在执行此操作时向通用internet开放的内容,但当所有其他操作都失败时…您的rabbitmq未运行或不可访问没有rabbitmq正常运行。否则,通过python shell也不会执行该任务。看起来有什么东西阻止了从server2到rabbitmq服务的网络连接-您应该尝试使用基本的网络诊断工具来找出发生了什么。对于非常基本的尝试,例如从服务器2到端口5672上的rabbitmq主机的telnet