Erhalte den Fortschritt von der asynchronen Python-Sellerie-Kette durch die Ketten-ID

8

Ich versuche den Fortschritt einer Task-Kette zu erhalten, indem ich jeden Task-Status abfrage. Aber wenn ich die Kette durch ihre ID abrufe, bekomme ich ein Objekt, das sich anders verhält.

In tasks.py

%Vor%

Beim Abfragen von ipython ...

%Vor%

Verwenden von Python 2.7.3 und Sellerie 3.0.19 unter Redis.

Wie Sie in 50 & amp; 51 , der von celery.AsyncResult zurückgegebene Wert unterscheidet sich von der ursprünglichen Kette.

Wie kann ich die ursprüngliche Ketten-Aufgabenliste durch die Ketten-ID erhalten?

    
Hernantz 30.04.2013, 18:00
quelle

1 Antwort

8

Wie @Hernantz sagte, können Sie die Elternkette nicht nur anhand der Aufgaben-ID wiederherstellen. Sie müssten über Ihre Warteschlange iterieren, was je nachdem, was Sie als Broker verwenden, möglich oder nicht möglich ist.

Aber wenn Sie die letzte Aufgaben-ID haben, um die Suche durchzuführen, dann haben Sie die Kette, Sie müssen nur alle Aufgaben-IDs speichern und die Kette neu aufbauen, wenn Sie ihren Status überprüfen müssen. Sie können die folgenden Funktionen verwenden:

%Vor%

Rufen Sie den Speicher auf, wenn Sie zum ersten Mal ein AsyncResult von der Kette erhalten. Wenn Sie die Wiederherstellung aufrufen, erhalten Sie eine verkettete Liste von AsyncResult s, die Ihnen die Kette gibt.

    
Ryan Jenkins 28.05.2014 09:54
quelle

Tags und Links