2013-07-22 23 views
5

W celery chcę uzyskać status zadania dla wszystkich zadań dla określonej nazwy zadania. Dla tego wypróbowanego poniżej kodu.W selerze, jak uzyskać status zadania dla wszystkich zadań dla określonej nazwy zadania?

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 

Teraz otrzymuję pustą listę w tym kodzie.

Odpowiedz

1

Nie jest to obsługiwane natywnie. W zależności od zaplecza (Mongo, Redis, itp.), Możesz lub nie być w stanie introspekcji zawartości kolejki i dowiedzieć się, co jest w niej zawarte. Nawet jeśli to zrobisz, stracisz przedmioty aktualnie w toku.

Powiedział, że można poradzić sobie z tym samemu:

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