2010-11-10 18 views
7

Aus irgendeinem Grund gibt es ein Problem beim Zurückgeben der Ergebnisse, wenn ich eine neue Aufgabe in Sellerie erstellen und ausführen. Die erste Aufgabe kehrt perfekt zurück, aber für alle nachfolgenden Aufgaben ist das Ergebnis immer ausstehend. Ich habe das Sellery-Protokoll überprüft und es wird das korrekte Ergebnis ohne Fehler angezeigt, aber es kann es einfach nicht zurückgeben.Sellerie gibt keine Ergebnisse zurück

Wenn es hilft, ich rase rabbitmq als mein Backend.

+0

Welche Version von Sellerie? Wofür speichern Sie die Ergebnisse? (CELERY_RESULT_BACKEND) – asksol

+0

Version 2.2 und rabbitmq ist mein Backend. – veered

+0

Warten. Tut mir leid, das macht keinen Sinn. Ich habe keine Datenbank eingerichtet oder eine der Konfigurationseinstellungen geändert. Bedeutet das, dass AMQP standardmäßig verwendet wird? – veered

Antwort

5

Nun, es stellt sich heraus, dass ich nur ein Backend explizit angeben musste.

Hinzufügen:

CELERY_RESULT_BACKEND = "amqp" 

meiner Einstellungsdatei schien alles zu beheben.

1

Ich bekomme auch das gleiche Problem, auch wenn ich 'amqp' Backend hinzufügen.

Hier ist meine Sellerie-Konfigurationsdatei:

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

Meine Schale, wo erstmals get erfolgreich ist und das zweite Mal seine gehangen. Nach einiger Zeit, wenn ich die Methode erneut aufrufen, funktioniert es. Dieses Muster wiederholt sich.

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