2017-01-01 3 views
3

J'utilise actuellement prefork par défaut de celery pour la simultanéité et je veux utiliser Eventlet.Django Celery Eventlet - Obtenir l'erreur "No address found"

J'ai essayé d'installer eventlet et utilisé pour la concurrence, mais je reçois l'erreur suivante:

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

Mais il travaille bien avec prefork par défaut et je pourrais exécuter async emplois.

J'utilise actuellement django 1.10 et Céleri 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 

peut aider quelqu'un s'il vous plaît, je ne pouvais pas obtenir les réponses googler.

S'il vous plaît me connaître, si quelqu'un a des questions.

Je ne sais pas ce que je suis absent

Répondre

1

« Aucune adresse trouvée » ressemble à une erreur avec la résolution DNS. Si vous pouvez résoudre l'adresse de votre serveur rabbitmq, le problème peut être lié à Eventlet.

Si vous utilisez Eventlet 0.20.0, il semble que cela pourrait casser la résolution DNS. Voir: https://github.com/nameko/nameko/issues/392

Si c'est le cas, peut-être vous pouvez utiliser une version différente d'eventlet avec quelque chose comme pip install --upgrade eventlet==0.19.0 ou pip install --upgrade eventlet==0.20.1.

+1

Merci ..! résolution dans https://github.com/nameko/nameko/issues/392 pip installer -U https://github.com/eventlet/eventlet/archive/f266be30f5c3ff1889e9ac3f0bad698a49d40e99.zip –

+1

cela a fonctionné. merci de m'avoir indiqué le bon problème https://github.com/nameko/nameko/issues/392 –

+0

Veuillez le remplacer par 'eventlet == 0.20.1' – temoto

0

Si vous rencontrez cette erreur avec eventlet==0.20.0, cela signifie que vous avez une configuration incorrecte. /etc/resolv.conf avec search domain mais vous indiquez un nom d'hôte relatif rabbit pour lequel la résolution DNS correcte doit tenter uniquement la requête rabbit.domain aux serveurs de noms.

options de solution appropriée:

  • introduisent domaine .local à votre réseau, changement resolv.conf, les enregistrements DNS et d'application configs à rabbit.local. Tout bien considéré, c'est le meilleur moyen.
  • supprimer search ligne de /etc/resolv.conf
  • add point à la fin de hostnames à un seul niveau dans configs d'application rabbit. - qui fait le nom d'hôte qualifié qui est toujours résolu correctement

Pour moins de façon parfaite, mise à niveau eventlet>=0.20.1 il contient correctif qui tente les requêtes de niveau supérieur comme si elles étaient pleinement qualifiées (dans ce cas rabbit.)