现在我正在应用程序中执行芹菜任务。我希望我的任务执行链接,但是以某种方式,链条不起作用,小组工作但链条不起作用。我想要的过程是我希望在处理GROUP_B之后再处理GROUP_A,依此类推。 我尝试使用和弦,但仍然不知道。下面是我在芹菜上执行小组任务的简单链条。 感谢您的关注。
GROUP_A = []
GROUP_B = []
GROUP_C = []
GROUP_D = []
for i in range(3):
GROUP_A.append(A.s(i+1))
GROUP_B.append(B.s(i+1))
GROUP_C.append(C.s(i+1))
GROUP_D.append(D.s(i+1))
job = chain(
group(GROUP_A),
group(GROUP_B),
group(GROUP_C),
group(GROUP_D)
)
job.apply_async()
此致
威克亚(Meikelwis Wijaya)
答案 0 :(得分:0)
不确定我是否完全理解,但是当您使用s()调用任务时,它们会传递结果。
对于任务A,您要执行3个并行任务(该组),而没有任何传入,并将其馈送到B任务的组。
如果只想将它们简单地链接起来,
chain([D.si(i, 1), C.s(1), B.s(1), A.s(1)])
应该这样做,只要所有任务都接受2个参数
答案 1 :(得分:0)
您遇到的问题是,当将每个组传递到后续链中时,您必须获得每个组的不变签名,因为每个组本身就是一个任务(而不是任务的调用):
job = chain(
group(GROUP_A).si(),
group(GROUP_B).si(),
group(GROUP_C).si(),
group(GROUP_D).si()
)
job.apply_async()