2010-11-10 3 views
7

Pour une raison quelconque, chaque fois que je crée et exécute une nouvelle tâche dans Celery, il y a un problème avec le renvoi des résultats. La première tâche retourne parfaitement, mais pour toutes les tâches suivantes, le résultat est toujours en attente. J'ai vérifié le journal de céleri, et il obtient le résultat correct sans erreurs, mais il ne peut tout simplement pas le retourner.Le céleri ne renvoie pas de résultats

Si cela aide, j'utilise rabbitmq comme backend.

+0

Quelle version de céleri? Qu'est-ce que vous utilisez pour stocker les résultats? (CELERY_RESULT_BACKEND) – asksol

+0

Version 2.2 et rabbitmq est mon backend. – veered

+0

Attendez. Désolé, cela n'a aucun sens. Je n'ai pas configuré de base de données ou modifié les paramètres de configuration. Cela signifie-t-il qu'il sera par défaut AMQP? – veered

Répondre

5

Eh bien, il se trouve que j'avais juste besoin de spécifier explicitement un backend.

Ajout:

CELERY_RESULT_BACKEND = "amqp" 

à mon fichier de paramètres semblait tout régler.

1

Je reçois également le même problème même si j'ajoute le backend 'amqp'.

Voici mon fichier de configuration de céleri:

BROKER_HOST = "localhost" 
BROKER_PORT = 5672 
BROKER_USER = "guest" 
BROKER_PASSWORD = "guest" 
BROKER_VHOST = "/" 

CELERY_RESULT_BACKEND = "amqp" 
CELERY_AMQP_TASK_RESULT_EXPIRES = 18000 # 5 hours. 
CELERY_IMPORTS = ("test",) 

ma coquille où se mêlent première fois est réussie et la deuxième fois son accroché. Après quelque temps si j'appelle la méthode à nouveau cela fonctionne. Ce modèle ne cesse de répéter.

>>> r = test.add.delay(4, 4) 
>>> r.get() 
8 
>>> r = test.add.delay(4, 4) 
>>> r.get() 
^C <---------- it was hung here forever, I had to press ^C 

>>> r = test.add.delay(4, 4) 
>>> r.get() 
8 
Questions connexes