【发布时间】:2017-02-13 12:14:06
【问题描述】:
我有两个应用程序服务器(都有 django 应用程序)。两者都有芹菜工人在运行。 RabbitMQ 服务器设置在第三个不同的服务器上。
当使用delay() 从两个应用程序的服务器中的任何一个通过shell 执行任何测试任务时,它们都可以正常执行。
如果从浏览器(通过 ajax)的 server1 触发相同的任务,它会再次正常工作。
但是对于 server2(与 server1 具有相同的配置和代码),当从浏览器触发相同的任务时,它会给出 [错误 111] 连接被拒绝错误。
在 server1 或 server2 上安装的一些包是:
celery 3.1.18
amqp 1.4.9
django 1.8.5
有人可以帮我解决这个问题吗?谢谢!
错误跟踪如下:
文件“../lib/python2.7/site-packages/celery/app/task.py”延迟 453. return self.apply_async(args, kwargs) apply_async 中的文件“../lib/python2.7/site-packages/celery/app/task.py” 559.**dict(self._get_exec_options(),**选项) send_task 中的文件“../lib/python2.7/site-packages/celery/app/base.py” 353.reply_to=reply_to 或 self.oid,**选项 publish_task 中的文件“../lib/python2.7/site-packages/celery/app/amqp.py” 305.**kwargs 发布中的文件“../lib/python2.7/site-packages/kombu/messaging.py” 172. routing_key,强制,立即,交换,声明) _ensured 中的文件“../lib/python2.7/site-packages/kombu/connection.py” 457.interval_max) ensure_connection 中的文件“../lib/python2.7/site-packages/kombu/connection.py” 369. interval_start,interval_step,interval_max,回调) retry_over_time 中的文件“../lib/python2.7/site-packages/kombu/utils/__init__.py” 246. 返回乐趣(*args,**kwargs) 连接中的文件“../local/lib/python2.7/site-packages/kombu/connection.py” 237.返回self.connection 连接中的文件“../lib/python2.7/site-packages/kombu/connection.py” 742. self._connection = self._建立连接() _establish_connection 中的文件“../lib/python2.7/site-packages/kombu/connection.py” 697. conn = self.transport.建立连接() 建立连接中的文件“../lib/python2.7/site-packages/kombu/transport/pyamqp.py” 116. conn = self.Connection(**opts) __init__ 中的文件“../lib/python2.7/site-packages/amqp/connection.py” 165. self.transport = self.Transport(主机,connect_timeout,ssl) 传输中的文件“../lib/python2.7/site-packages/amqp/connection.py” 186.返回create_transport(主机,connect_timeout,ssl) create_transport 中的文件“../lib/python2.7/site-packages/amqp/transport.py” 299. return TCPTransport(host, connect_timeout) __init__ 中的文件“../lib/python2.7/site-packages/amqp/transport.py” 95. 引发 socket.error(last_err)【问题讨论】:
-
你的 rabbitmq 没有运行或无法访问
-
没有 rabbitmq 运行良好。否则通过 python shell 也不会执行任务。
-
似乎有什么东西阻止了从 server2 到 rabbitmq 服务的网络连接——你应该尝试使用基本的网络诊断工具来找出发生了什么。对于一个非常基本的尝试,例如
telnet从服务器 2 到端口 5672 上的 rabbitmq 主机
标签: python django python-2.7 rabbitmq celery