Consumer Connection error mit django und Sellerie+rabbitmq?
Ich versuche bis celeryd mit django und rabbit-mq. Bisher habe ich Folgendes getan:
- Installiert Sellerie aus der pip -
- Installierten rabbitmq über die debs verfügbar, von seinem Depot
- Hinzugefügt, ein Benutzer-und vhost zu rabbitmq über rabbitmqctl, sowie Berechtigungen für diesen Benutzer
- Begann der rabbitmq-server
- Installiert django-celery über pip
- Eingerichtet django-celery, einschließlich seiner Tabellen
- Konfiguriert die verschiedenen Dinge, die in settings.py (BROKER_HOST, BROKER_PORT, BROKER_USER, BROKER_PASSWORD, BROKER_VHOST, sowie Import djecelery, aufrufen der setup-Funktion und das hinzufügen es zu den INSTALLIERTEN APPS). Ich habe überprüft, und alle diese Werte korrekt sind (zumindest, Benutzer, Passwort und vhost korrekt sind).
So, jetzt, wenn ich python manage.py celeryd -l info
bekomme ich Verbindungsfehler (siehe unten). Jemand eine Idee warum?
$ 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
Ich traf das gleiche problem
InformationsquelleAutor Paul Wicks | 2012-05-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dein problem ist in der
BROKER_URL
.Mit einer zusätzlichen
VHOST
, die richtige Konfiguration wäre:BROKER_VHOST
Einstellung ist veraltet. Sie können dieVHOST
imBROKER_URL
variable:BROKER_URL='amqp://celeryuser@localhost:5672/celeryhost'
für mich ist die broker-url funktioniert nur mit einem doppelten Schrägstrich vor dem vhost: BROKER_URL='amqp://celeryuser@localhost:5672//celeryhost'
InformationsquelleAutor Amit
Für mich, die folgende URL-Endung gearbeitet:
...@localhost:5672/celeryvhost
InformationsquelleAutor user1804633
Ich hatte ähnliches Problem mit RabbitMQ und das problem war, dass mein Benutzer nicht über die Berechtigung zum erstellen von Nachrichten in RabbitMQ.
Versuchen, führen Sie das folgende Skript auf dem RabbitMQ-server mit Gast user und wenn Sie es schafft, einen job, versuchen Sie es mit Ihrem Benutzer:
Wenn du habe den gleichen Fehler nur das einrichten der Berechtigung für deinen Benutzer:
InformationsquelleAutor radeklos
Ihre rabbitmq-server muss nicht eingerichtet sein und/oder richtig konfiguriert. Stellen Sie sicher, dass es ist, und versuchen Sie es erneut - oder noch besser, wenn Sie nur versuchen, etwas zu testen und Sie werden Warteschlange Agnostiker, nehmen Sie Sie heraus, rabbitmq und starten mit redis. Es ist viel einfacher zu konfigurieren.
Ich einfach Ausschneiden und einfügen dieser code von meinem Projekt, und es funktioniert Prima:
InformationsquelleAutor josephmisiti
Was macht Ihr BROKER_URL Aussehen settings.py?
Standardmäßig RabbitMQ hat ein Gast-Benutzer, so dass, wenn Sie eine Verbindung herstellen können mit
dann das problem ist dein setup für RabbitMQs Benutzer, Passwort, oder virtualhost.
InformationsquelleAutor Jess