2013-07-22 13 views
5

In celery Ich möchte den Aufgabenstatus für alle Aufgaben für bestimmte Aufgabenname erhalten. Dafür hat der untenstehende Code ausprobiert.In Sellerie, wie Sie den Aufgabenstatus für alle Aufgaben für bestimmte Aufgabenname erhalten?

import celery.events.state 

# Celery status instance. 
stat = celery.events.state.State() 

# task_by_type will return list of tasks. 
query = stat.tasks_by_type("my_task_name") 

# Print tasks. 
print query 

Jetzt bekomme ich leere Liste in diesem Code.

Antwort

1

Dies wird nicht nativ unterstützt. Je nach Backend (Mongo, Redis, etc.) können Sie den Inhalt einer Warteschlange möglicherweise überprüfen und herausfinden, was darin enthalten ist. Selbst wenn du dies tust, wirst du Gegenstände vermissen, die gerade in Arbeit sind.

Das heißt, könnten Sie diese selbst verwalten:

result = mytask.delay(...) 
my_datastore.save("mytask", result.id) 
... 
for id in my_datastore.find(task="mytask"): 
    res = AsyncResult(id) 
    print res.state