我在我的定期任务中运行以下chord
:
(group(task_A1, task_A2, ... , task_An) | task_B)
每个任务(task_A1
,task_A2
。。。运行task_An
)可能需要5-10分钟。你知道吗
考虑以下场景:
在周期性任务期间(每小时),task_A1
。。task_An
是并行运行的。现在,有人从另一个流触发了一个外部task_A1'
任务。我的目标是停止&仅用task_A1'
替换当前正在运行的task_A1
并保持(不停止task_A2
)。。task_An
流原样-即等待组(of task_A2, ... ,task_An
&;the new task_A1'
)完成并启动task_B
。你知道吗
我目前的解决方案是撤销task_A1
&;task_B
并将新任务task_A1'
&;task_B'
添加到队列中—但我想知道如何创建这个新任务
与已经运行的task_A2, ... , task_An
相结合,可以实现以下功能:
(group(task_A1', task_A2, ... , task_An) | task_B')
我是通过撤销任务并在CeleryRouter中“重新连接”它们来实现的。我正在从celeryapp.control.inspect().active()
和celeryapp.control.inspect().reserved()
提取任务。我想知道是否有优雅的方式来实现我的目标。你知道吗
谢谢。你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐