我的要求是从 Celery 中的任务内部创建另一个任务。传递的参数将取决于父任务的输出。是的,我希望这是递归的,它会在某个时候停止(基于某些 IF 子句)。在芹菜中可以做到这一点吗?
我已经研究了组/和弦/等子任务原语。但是,它们并不像我想要的那么灵活。有没有办法做到这一点?
是的。 您可以在 Celery 中的任务中启动新任务。 是的,您可以在 Celery 中递归启动任务。 是的,您可以在任务中编程 else 条件。 最大的问题是你为什么要这样做?
@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