2013-07-22 6 views
5

В celery Я хочу получить статус задачи для всех задач для конкретного имени задачи. Для этого пробовали ниже код.В сельдерее, как получить статус задачи для всех задач для конкретного имени задачи?

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 

Теперь я получаю пустой список в этом коде.

ответ

1

Это не поддерживается. В зависимости от бэкэнд (Mongo, Redis и т. Д.) Вы можете или не сможете интроспективно просмотреть содержимое очереди и узнать, что в ней находится. Даже если вы это сделаете, вы пропустите пункты, которые в настоящее время выполняются.

Тем не менее, вы могли бы справиться с этим сами:

result = mytask.delay(...) 
my_datastore.save("mytask", result.id) 
... 
for id in my_datastore.find(task="mytask"): 
    res = AsyncResult(id) 
    print res.state 
Смежные вопросы