0
假设有4个任务T1
,T2
, T3
,T4
。他们被链接在一起T1.si() | T2.si() | T3.si() | T4.si()
。 T3
产生异步的进一步任务T30 .. T3n
,如chord(T30,...,T3n)(reduce.s())
。我事先不知道n
(即,将产生子任务no的子任务T3i
)。在芹菜工作流程中引入同步链式执行
我想要T4
只有在完成所有T3i..T3n
任务后才能执行。正如预期的那样,T3
由于异步行为而立即返回,然后T4在和弦完成之前开始执行。
我可以添加一个同步任务,只是在T4
之前执行T3.get()
,但它会阻止其中一个工作进程。
有没有办法解决这个设计,以避免阻塞任务,或更好的设计?
所以我认为这里最好的选择是改变你如何使用'chord'功能。而不是将'T3'和'T4'连接在一起,使用'T3'作为'chord'主体,'T4'作为'chord'回调。 –