django-celery: Aucun backend de résultat configuré
Je suis en train d'utiliser django-céleri dans mon projet
Dans settings.py j'ai
CELERY_RESULT_BACKEND = "amqp"
Le serveur est démarré bien avec
python manage.py celeryd --setting=settings
Mais si je veux accéder à la suite d'un retard de la tâche, j'obtiens l'erreur suivante:
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.
C'est très étrange parce que quand je viens de lancer celeryd (avec les mêmes paramètres de céleri), il fonctionne très bien. Quelqu'un a rencontré ce problème avant?
Merci d'avance!
source d'informationauteur airfang
Vous devez vous connecter pour publier un commentaire.
J'ai eu le même problème lors de l'obtention du résultat de l'céleri tâche bien que le céleri tâche a été exécutée ( journaux de la console). Ce que j'ai trouvé, j'ai eu le même paramètre
CELERY_RESULT_BACKEND = "redis"
dans django settings.py mais j'avais aussi instancié le céleri dans le tasks.pycelery = Celery('tasks', broker='redis://localhost')
- qui, je suppose, remplace le settings.py bien et, par conséquent, il n'était pas de la configuration du serveur d'arrière-plan pour mon céleri instance qui est utilisé pour stocker les résultats.je l'ai enlevé et laisser django obtenir le céleri obtenir les propriétés de settings.py et l'exemple de code a fonctionné pour moi.
Pour ceux qui sont dans une recherche désespérée d'une solution comme je l'étais.
Mettre cette ligne à la fin de la
settings.py
script:Ressemble django-céleri n'est pas en train de considérer ses propres paramètres sans un ordre strict.
Si vous êtes juste d'exécuter les exemples de http://www.celeryproject.org/tutorials/first-steps-with-celery/vous devez exécuter la console via manage.py:
% python manage.py shell
Certains la façon dont la console a avoir django environnement mis en place afin de ramasser les paramètres. Par exemple, dans PyCharm vous pouvez exécuter django console, dans lequel tout fonctionne comme prévu.
Voir AMQP BACKEND PARAMÈTRES pour une meilleure compréhension
Essayez d'ajouter la ligne ci-dessous à votre settings.py:
CELERY_TASK_RESULT_EXPIRES = 18000 # 5 hours
Dans mon cas, le problème a été que je passais le CELERY_RESULT_BACKEND argument pour le céleri constructeur:
La solution a été d'utiliser le backend argument à la place: