Ich habe zwei Anwendungsserver (beide mit der Django-Anwendung). Beide haben Sellerie Arbeiter laufen. RabbitMQ Server ist auf einem dritten anderen Server eingerichtet.Sellerie - [Errno 111] Verbindung abgelehnt, wenn Sellerie Aufgabe mit Verzögerung ausgelöst wird()
Wenn eine der Testaufgaben von einem der beiden Anwendungsserver über die Shell unter Verwendung von delay()
ausgeführt wird, werden sie ordnungsgemäß ausgeführt.
Wenn dieselbe Aufgabe von Server1 vom Browser ausgelöst wird (durch Ajax), funktioniert es wieder gut.
Aber im Falle von server2 (mit der gleichen Konfiguration und Code wie server1), wenn die gleiche Aufgabe vom Browser ausgelöst wird gibt es [Error 111] Verbindung verweigert Fehler.
Einige der installierten Pakete auf server1 oder server2 sind:
celery 3.1.18
amqp 1.4.9
django 1.8.5
Kann jemand mir mit diesem helfen? Vielen Dank!
Die Fehler Spur ist wie folgt:
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)
Dein rabbitmq läuft nicht oder ist nicht erreichbar –
Kein rabbitmq läuft gut. Ansonsten wäre die Aufgabe über die Python-Shell nicht ausgeführt worden. – ndk
Es sieht so aus, als würde etwas eine Netzwerkverbindung von server2 zum rabbitmq-Dienst verhindern - Sie sollten versuchen, grundlegende Netzwerkdiagnose-Tools zu verwenden, um herauszufinden, was vor sich geht. Für einen sehr einfachen Versuch, z.B. 'telnet' von Server 2 an den rabbitmq-Host an Port 5672 – scytale