考虑以下场景;
有 3 种不同类型的任务。A
,B
和C
。A
旨在为B
生成输入,B
应该在收到来自A
的输入后创建许多C
任务。
一开始,我只能定义group(A, B)
,因为C
是由B
执行的。但是我想等待所有C
任务也完成,以便得出结论,主要任务已经完成。
有没有办法通过使用芹菜实用程序来做到这一点?
到目前为止,我使用的解决方案是等待B
内部的C
任务。
类似的东西;
from celery.result import allow_join_result
def B():
tasks = get_c_tasks()
g = group(tasks)
gr = g.apply_async()
with allow_join_result():
return gr.join(propagate=False)