2010-11-10 4 views
7

Per qualche motivo, ogni volta che creo ed eseguo una nuova attività in Celery, c'è un problema nel restituire i risultati. Il primo compito restituisce perfettamente, ma per tutte le attività successive, il risultato è sempre in sospeso. Ho controllato il log di Celery e ottiene il risultato corretto senza errori, ma non è in grado di restituirlo.Celery non restituisce risultati

Se è utile, eseguo rabbitmq come backend.

+0

Quale versione di Celery? Cosa usi per memorizzare i risultati? (CELERY_RESULT_BACKEND) – asksol

+0

Versione 2.2 e rabbitmq è il mio back-end. – veered

+0

Attendi. Mi dispiace che non ha alcun senso. Non ho installato nessun database, né cambiato nessuna delle impostazioni di configurazione. Significa che sarà impostato su AMQP? – veered

risposta

5

Bene, ho scoperto che avevo solo bisogno di specificare esplicitamente un back-end.

Aggiunta:

CELERY_RESULT_BACKEND = "amqp" 

al mio file di impostazioni sembrava di risolvere tutto.

1

Ho riscontrato lo stesso problema anche se aggiungo il backend 'amqp'.

Ecco il mio sedano file di configurazione:

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",) 

mio guscio in cui prima ottenere il tempo è giunto il momento di successo e secondo la sua appeso. Dopo qualche tempo se chiamo di nuovo il metodo funziona. Questo modello continua a ripetere.

>>> 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