从Celery中的任务中剥离另一个任务
问题描述:
我的要求是从Celery中的任务内部创建另一个任务。传递的参数将取决于父任务的输出。是的,我希望这是一种递归,在某些时候停止(基于一些IF子句)。芹菜可以这样做吗?从Celery中的任务中剥离另一个任务
我查看了Group/Chord/etc子任务原语。但是,它们并不像我想要的那样灵活。 有没有办法做到这一点?
答
是的。您可以在Celery中的任务中启动新任务。是的,您可以递归地在Celery中启动任务。是的,如果其他条件在任务中可以编程。大问题是你为什么?
@app.task
def mytask(*args, **kwargs):
if test_basecase(*args, **kwargs):
return root_case
else:
res = mytask.apply_async(*handle(*args), **khandle(**kwargs))
#probably starting several tasks then joining them
return res.result
我希望能够根据需要安排。假设我想在前两天每2小时运行一次任务,然后相隔3小时运行5天,然后在接下来的10天内相隔20小时,然后在任何时候中途根据用户输入停止运行。我应该能够在手动通知关闭时撤销任务。 – Ouroboros 2014-11-23 05:58:25
你应该重写你的问题。 – 2014-11-23 10:03:47