您可以從任務結果中生成DependencyGraph
。
In [4]: task_result = some_complex_task()
In [5]: task_result.parent.parent.graph
Out[5]: 285fa253-fcf8-42ef-8b95-0078897e83e6(1)
463afec2-5ed4-4036-b22d-ba067ec64f52(0)
872c3995-6fa0-46ca-98c2-5a19155afcf0(2)
285fa253-fcf8-42ef-8b95-0078897e83e6(1)
463afec2-5ed4-4036-b22d-ba067ec64f52(0)
您可以將這些圖表點文件:
In[22]: with open('graph.dot', 'w') as fh:
...: res.parent.parent.graph.to_dot(fh)
如需更多信息,請查看documentation。
示例 讓我們打印任務的任務名稱。
task_list.py:
from celery import Celery, chain
celery_app = Celery('my_tasks', broker='amqp://', backend='amqp://')
@celery_app.task()
def add(x, y):
return x + y
@celery_app.task()
def sub(x, y):
return x - y
c = chain(add.s(3, 4), sub.s(2))
的任務C SubTask類名稱:
In [62]: r=c()
In [63]: r.parent.graph
Out[63]:
d11c0076-a4e4-4e84-b26b-9b689860baa5(0)
68ba78cf-7e6c-4735-9173-2349da541b28(1)
d11c0076-a4e4-4e84-b26b-9b689860baa5(0)
In [64]: r.graph
Out[64]: d11c0076-a4e4-4e84-b26b-9b689860baa5(0)
In [65]: while r:
....: print(r.task_name)
....: r = r.parent
....:
task_list.sub
task_list.add
是否也可以讓所有的任務編號從圖形對象的,這樣我就可以登錄他們? – 2014-09-24 14:27:39
@TomFerguson是的,你可以。我已經在上面添加了新的示例。 – ChillarAnand 2014-09-25 03:58:22
效果很好。謝謝! – 2014-09-26 14:35:49