组任务已在运行时更改和弦组

时间:2017-01-10 17:53:59

标签: python celery celery-task celeryd chord

我在定期任务中运行以下chord

(group(task_A1, task_A2, ... , task_An) | task_B)

每个任务(task_A1task_A2 ...,task_An)可能需要约5-10分钟才能运行。

请考虑以下情形: 在定期任务(每小时)期间,task_A1 .. task_An并行运行。现在,从另一个流程中,某人触发了外部task_A1'任务。我的目标是停止&仅使用task_A1替换当前正在运行的task_A1',并保持(不停止task_A2 .. task_An)流程 - 即等待组{{{ 1}}&新task_A2, ... ,task_An)完成并启动task_A1'

我目前的解决方案是撤销task_B& task_A1并添加新任务task_B& task_A1'排队 - 但我想知道如何创建这个新的 与已经运行的task_B'组合,实现类似:

task_A2, ... , task_An

我是通过撤销任务并在CeleryRouter中“重新连接”它来做到这一点的。我正在从(group(task_A1', task_A2, ... , task_An) | task_B') celeryapp.control.inspect().active()中提取任务。我想知道是否有优雅的方式来实现我的目标。

感谢。

0 个答案:

没有答案