Sellerie: BROKER_URL in Konfigurationsdatei ignorieren

Meine Frage ist ein Duplikat vondieses, aber detaillierter.

Das Problem ist, dass ich eine habeBROKER_URL in meiner Celery-Konfigurationsdatei festgelegt, aber das spiegelt sich nicht in und ichbin Laden der Konfig: Ich habe geprüft, und esist geladen werden - tatsächlich werden andere dort definierte Konstanten gesetzt, aber nichtBROKER_URL.

Dies scheint ein Fehler zu sein, aber ich wollte sicher sein.

celeryconfig.py:

BROKER_URL = "amqp://user:[email protected]:5672//vhost"

CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'
CELERY_ENABLE_UTC = True

(JSON wird als Serializer verwendet, nichtPickleIch weiß also, dass das funktioniert.)

app.py:

from celery import Celery

app = Celery('tasks', broker='amqp://guest@localhost//')
app.config_from_object('celeryconfig')

Den Arbeiter anrufen:

celery -A app.app worker -l info

Aber dann verstehe ich folgendes:

[2013-11-12 11:20:51,610: INFO/MainProcess] consumer: Connected to amqp://[email protected]:5672//.

Ich habe versucht, Schluss zu machenBROKER_URL, aber ohne Erfolg:

BROKER_TRANSPORT = 'amqp'
BROKER_USER = 'user'
BROKER_PASSWORD = 'password'
BROKER_HOST = 'remote.server.com'
BROKER_PORT = 5672
BROKER_VHOST = '/vhost'

Interessanterweise funktioniert es, wenn ich das explizit einstelleBROKER_URL imapp.py:

from celery import Celery

app = Celery('tasks', broker='amqp://guest@localhost//')
app.config_from_object('celeryconfig')
app.conf.BROKER_URL = "amqp://user:[email protected]:5672//vhost"

Antworten auf die Frage(3)

Ihre Antwort auf die Frage