У меня есть два сервера приложений (оба имеют приложение django). У обоих есть работник сельдерея. Сервер RabbitMQ настроен на третьем сервере.Сельдерей - [Errno 111] Соединение отклонено, когда задача сельдерея запускается с использованием delay()
Когда какая-либо из тестовых задач выполняется с любого из двух серверов приложения через оболочку с использованием delay()
, они выполняются нормально.
Если эта же задача запускается с сервера1 из браузера (через ajax), он снова работает отлично.
Но в случае сервера2 (с тем же конфигурационным кодом и кодом, что и сервер 1), когда одна и та же задача запускается из браузера, он дает сообщение об ошибке «Ошибка 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)
Ваш rabbitmq не работает или недоступен –
Нет rabbitmq работает нормально. В противном случае с помощью оболочки python задача не была бы выполнена. – ndk
похоже, что что-то препятствует сетевому подключению с сервера2 к сервису rabbitmq - вы должны попробовать использовать базовые средства диагностики сети, чтобы выяснить, что происходит. Для очень простой попытки, например, 'telnet' с сервера 2 на хост rabbitmq на порту 5672 – scytale