Erreur de connexion du consommateur avec django et céleri + rabbitmq?
Je suis en train de configurer celeryd avec django et lapin-mq. Jusqu'à présent, j'ai effectué les opérations suivantes:
- Installé céleri de pip
- Installé rabbitmq via les deb disponible à partir de leur dépôt
- Ajout d'un utilisateur et le serveur virtuel à rabbitmq via rabbitmqctl, ainsi que les autorisations de l'utilisateur
- Commencé le rabbitmq-serveur
- Installé django-céleri via pip
- Configurer django-céleri, y compris ses tables
- Configuré les différentes choses dans settings.py (BROKER_HOST, BROKER_PORT, BROKER_USER, BROKER_PASSWORD, BROKER_VHOST, ainsi que l'importation de djecelery, l'appel de la fonction de configuration et en l'ajoutant à la INSTALLÉ des APPLICATIONS). J'ai vérifié et toutes ces valeurs sont correctes (au moins, utilisateur, mot de passe et serveur virtuel sont corrects).
Alors maintenant, quand je lance python manage.py celeryd -l info
j'obtiens des erreurs de connexion (voir ci-dessous). Quelqu'un a une idée pourquoi?
$ python manage.py celeryd -l info
/usr/local/lib/python2.7/dist-packages/djcelery/loaders.py:108: UserWarning: Using settings.DEBUG leads to a memory leak, never use this setting in production environments!
warnings.warn("Using settings.DEBUG leads to a memory leak, never "
[2012-05-15 18:38:04,486: WARNING/MainProcess]
-------------- celery@ubuntu v2.5.3
---- **** -----
--- * *** * -- [Configuration]
-- * - **** --- . broker: amqp://celeryuser@localhost:5672/celeryhost
- ** ---------- . loader: djcelery.loaders.DjangoLoader
- ** ---------- . logfile: [stderr]@INFO
- ** ---------- . concurrency: 1
- ** ---------- . events: OFF
- *** --- * --- . beat: OFF
-- ******* ----
--- ***** ----- [Queues]
-------------- . celery: exchange:celery (direct) binding:celery
[Tasks]
[2012-05-15 18:38:04,562: INFO/PoolWorker-1] child process calling self.run()
[2012-05-15 18:38:04,565: WARNING/MainProcess] celery@ubuntu has started.
[2012-05-15 18:38:07,572: ERROR/MainProcess] Consumer: Connection Error: [Errno 104] Connection reset by peer. Trying again in 2 seconds...
^C[2012-05-15 18:38:08,434: WARNING/MainProcess] celeryd: Hitting Ctrl+C again will terminate all running tasks!
[2012-05-15 18:38:08,435: WARNING/MainProcess] celeryd: Warm shutdown (MainProcess)
[2012-05-15 18:38:09,372: INFO/PoolWorker-1] process shutting down
[2012-05-15 18:38:09,373: INFO/PoolWorker-1] process exiting with exitcode 0
[2012-05-15 18:38:09,376: INFO/MainProcess] process shutting down
source d'informationauteur Paul Wicks
Vous devez vous connecter pour publier un commentaire.
Votre problème est dans le
BROKER_URL
.Avec un supplément de
VHOST
le droit de config serait:Pour moi, l'URL se terminant travaillé:
...@localhost:5672/celeryvhost
J'ai eu le même problème avec RabbitMQ et le problème était que mon utilisateur n'est pas autorisé à créer des messages dans RabbitMQ.
Essayez d'exécuter le script suivant sur votre serveur RabbitMQ avec invité de l'utilisateur et s'il crée un emploi essayer avec votre utilisateur:
Si tu as le même message d'erreur il suffit de configurer l'autorisation pour l'utilisateur:
Votre rabbitmq serveur ne doit pas être mise en place et/ou correctement configuré. Vérifiez qu'il est et essayer de nouveau - ou, mieux encore, si vous êtes juste en train de tester quelque chose et vous êtes à la file d'attente agnostique, prendre rabbitmq et commencer à utiliser redis. Il est beaucoup plus facile à configurer.
Je viens de couper et de coller ce code à partir de l'un de mes projet, et il fonctionne très bien:
Quel est votre BROKER_URL ressembler à settings.py?
Par défaut RabbitMQ a un utilisateur invité, donc si vous pouvez vous connecter avec
alors le problème est de votre installation pour RabbitMQs d'utilisateur, mot de passe, ou virtualhost.