2013-07-22 15 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 
関連する問題