2017-01-01 3 views
3

Ich verwende derzeit Sellerie Standard Prefork für Nebenläufigkeit und ich möchte Eventlet verwenden.Django Sellerie Eventlet - Getting "Keine Adresse gefunden" Fehler

Ich versuchte Eventlet zu installieren und verwenden es für Nebenläufigkeit, aber ich folgenden Fehler bekommen:

[2017-01-01 04:11:14,233: ERROR/MainProcess] consumer: Cannot connect to amqp://application:**@rabbit:5672//: [Errno -2] No address found. 

Aber es funktioniert mit Standard-prefork gut und ich kann Arbeitsplätze Asynchron ausführen.

Ich bin derzeit mit django 1.10 und Sellerie 4.0.1

-------------- [email protected] v4.0.1 (latentcall) 
---- **** ----- 
--- * *** * -- Linux-4.4.0-57-generic-x86_64-with-Ubuntu-16.04-xenial 2017-01-01 03:59:11 
-- * - **** --- 
- ** ---------- [config] 
- ** ---------- .> app:   fivefrets:0x7f97ca281a58 
- ** ---------- .> transport: amqp://fivefrets:**@rabbit:5672// 
- ** ---------- .> results:  disabled:// 
- *** --- * --- .> concurrency: 10 (eventlet) 
-- ******* ---- .> task events: OFF (enable -E to monitor tasks in this worker) 
--- ***** ----- 
-------------- [queues] 
      .> celery   exchange=celery(direct) key=celery 

kann jemand bitte helfen, ich konnte nicht die Antworten bekommen googeln.

Bitte kontaktieren Sie mich, wenn jemand irgendwelche Fragen hat.

nicht sicher, was ich fehle

Antwort

1

„Keine Adresse gefunden“ sieht aus wie ein Fehler mit dem DNS-Auflösung. Wenn Sie die Adresse Ihres Rabbitmq-Servers auflösen können, liegt das Problem möglicherweise bei Eventlet.

Wenn Sie Eventlet 0.20.0 verwenden, sieht es so aus, als könnte dies die DNS-Auflösung beeinträchtigen. Siehe: https://github.com/nameko/nameko/issues/392

Wenn das der Fall ist, können Sie möglicherweise eine andere Version von Eventlet mit etwas wie pip install --upgrade eventlet==0.19.0 oder pip install --upgrade eventlet==0.20.1 verwenden.

+1

Vielen Dank ..! Auflösung in https://github.com/nameko/nameko/issues/392 Pip installieren -U https://github.com/eventlet/eventlet/archive/f266be30f5c3ff1889e9ac3f0bad698a49d40e99.zip –

+1

es funktionierte. Danke, dass Sie mich auf das richtige Problem hingewiesen haben https://github.com/nameko/nameko/issues/392 –

+0

Bitte ändern Sie es in 'eventlet == 0.20.1' – temoto

0

Wenn Sie diesen Fehler mit eventlet==0.20.0 treffen, bedeutet das, dass Sie eine fehlerhafte Konfiguration haben. /etc/resolv.conf mit search domain, aber Sie geben einen relativen Hostnamen rabbit aus, für den die richtige DNS-Auflösung nur rabbit.domain Abfrage zu Nameservers versuchen muss.

Proper Lösungsmöglichkeiten:

  • vorstellen .local Domain zu Ihrem Netzwerk, ändern resolv.conf, DNS-Einträge und Anwendung configs rabbit.local. Alles in allem ist dies der beste Weg.
  • search Linie von /etc/resolv.conf
  • add abschließendem Punkt auf einzelne Ebene Host-Namen in Anwendung configs rabbit. entfernen - die voll qualifizierte Hostnamen macht, die immer richtig
  • behoben ist

Für weniger als perfekte Möglichkeit, ein Upgrade eventlet>=0.20.1 enthält Patch das versucht Top-Level-Abfragen, als wären sie voll qualifiziert (in diesem Fall rabbit.)

Verwandte Themen