有没有办法暂停/恢复使用celery 3.0链创建的正在运行的工作流程?
基本上,我们的系统中有两种不同类型的任务:交互式和非交互式任务.非交互式的,我们有所有参数,但交互式的需要用户输入.请注意,对于交互式任务,我们只能在链中的所有先前的tak完成后询问用户输入,因为它们的结果将影响交互式任务(即,在创建实际链之前我们不能要求用户输入).
关于如何处理此问题的任何建议?真的在这里亏本..
目前的想法:
- 创建两个Task的子类(来自celery import Task).将一个额外的实例(类成员)变量添加到Interactive任务子类,默认情况下设置为false,表示仍然需要一些用户输入.以某种方式可以访问Task的实例,并从芹菜工作者的外部设置为true(虽然我已经看了很多,但似乎无法直接从另一个模块访问Task对象)
- 将链分区为由Interactive作业分隔的多个链.一旦链条到达终点并且触发交互式任务的交互式客户端组件,就会在芹菜工作者之外检测某种机制.一旦用户输入了所有这些数据,就获取数据,并启动新链,其中交互式任务位于新链的头部.