django-celery: Kein Ergebnis-backend konfiguriert
Ich versuche, mit django-celery in meinem Projekt
In settings.py ich habe
CELERY_RESULT_BACKEND = "amqp"
Den server gestartet fein mit
python manage.py celeryd --setting=settings
Aber wenn ich zugreifen will, ein Ergebnis von einer Aufgabe verzögert, bekomme ich die folgende Fehlermeldung:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python27\lib\site-packages\celery\result.py", line 108, in ready
return self.status in self.backend.READY_STATES
File "C:\Python27\lib\site-packages\celery\result.py", line 196, in status
return self.state
File "C:\Python27\lib\site-packages\celery\result.py", line 191, in state
return self.backend.get_status(self.task_id)
File "C:\Python27\lib\site-packages\celery\backends\base.py", line 404, in _is
_disabled
raise NotImplementedError("No result backend configured. "
NotImplementedError: No result backend configured. Please see the documentation
for more information.
Es ist sehr seltsam, weil wenn ich nur laufen celeryd (mit der gleichen Sellerie-Einstellungen), funktioniert es Prima. Hat jemand auf dieses problem vor?
Vielen Dank im Voraus!
InformationsquelleAutor airfang | 2011-12-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich hatte das gleiche problem, während sich das Ergebnis wieder aus dem Sellerie Aufgabe, obwohl die Sellerie-task ausgeführt wurde ( console-logs). Was ich gefunden habe war, ich hatte die gleiche Einstellung
CELERY_RESULT_BACKEND = "redis"
in django settings.py aber ich hatte auch instanziiert Sellerie in der tasks.pycelery = Celery('tasks', broker='redis://localhost')
- ich nehme an, überschreibt der settings.py Eigentum und daher war es nicht die Konfiguration der backend-server für meine Sellerie-Instanz, die verwendet wird zum speichern der Ergebnisse.entfernte ich diese und lassen django bekommen, Sellerie Eigenschaften aus settings.py und der Beispielcode für mich gearbeitet.
InformationsquelleAutor psekar
Für diejenigen, die in einer verzweifelten Suche nach einer Lösung, wie ich war.
Setzen Sie diese Zeile am Ende der
settings.py
Skript:Sieht aus wie django-celery ist nicht zu berücksichtigen, es sind eigene Einstellungen, ohne eine strenge Ordnung.
djcelery
mitcelery
.InformationsquelleAutor Oleg Dragora
Wenn Sie gerade laufen die Proben aus http://www.celeryproject.org/tutorials/first-steps-with-celery/, die Sie benötigen, um ausführen die Konsole über manage.py:
% python manage.py shell
InformationsquelleAutor per06a
Einige, wie die Konsole hat django-Umgebung einrichten, um pick-up die Einstellungen. Zum Beispiel, in PyCharm, die Sie ausführen können django-Konsole, in denen alles funktioniert wie erwartet.
InformationsquelleAutor airfang
Sehen AMQP-BACKEND-EINSTELLUNGEN für ein besseres Verständnis
Versuchen Sie die folgende Zeile zu Ihrer settings.py:
CELERY_TASK_RESULT_EXPIRES = 18000 # 5 hours
InformationsquelleAutor Nitin Bhojwani
In meinem Fall, das problem war, dass ich die übergabe der CELERY_RESULT_BACKEND argument für die Sellerie-Konstruktor:
Die Lösung war die Verwendung der backend-argument statt:
InformationsquelleAutor Pablo Guerrero