有没有办法暂停/恢复使用芹菜3.0中的链创建的正在运行的工作流?
基本上,我们的系统中有两种不同类型的任务:交互式任务和非交互式任务。非交互式的,我们有所有的参数,但交互的需要用户的输入。请注意,对于交互式任务,我们只能要求用户输入,因为它们的结果将影响交互任务(即在创建实际链之前不能要求用户输入)。
对如何处理这件事有什么建议吗?真是不知所措..。
当前的想法:
发布于 2014-09-03 13:23:07
我们已经在我们的项目中实现了类似于您的第二个想法&它运行得很好。以下是实现的要点。
向模型添加新字段status &重写保存方法。
models.py:
class My_Model(models.Model):
# some fields
status = models.IntegerField(default=0)
def save(self, *args, **kwargs):
super(My_Model, self).save(*args, **kwargs)
from .functions import custom_func
custom_func(self.status)tasks.py
@celery.task()
def non_interactive_task():
#do something.
@celery.task()
def interactive_task():
#do something.functions.py
def custom_func(status):
#Change status after non interactive task is completed.
#Based on status, start interactive task.将status变量传递给模板,这对于显示用户输入信息的UI元素非常有用。当用户输入所需信息时,更改状态。这就调用了触发您的custom_func的interactive_task。
https://stackoverflow.com/questions/14887222
复制相似问题