芹菜动态工作流

2024-09-24 22:24:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Celery版本3.1.17。在

通常,您可以使用canvas模块来准备自己的静态工作流,比如chaingroupchord或简单地linking tasks。您可以访问工作流中任何任务的任何结果或任何任务属性(如任务id)。你必须预先确定你的任务。在

我通过调用工作流中的子任务来执行动态子任务。例如,我调用一个任务或者一个画布模块,它们动态地决定逻辑,并尝试根据这个决定调用子任务。但在该解决方案中,静态工作流任务和动态子任务之间没有父/子关系。我无法追踪他们。这真是令人沮丧。这是我目前无法使用的方式

class ParentTask(Task):
    def run(self, *args, **kwargs):
        SubTask().subtask(args=(1, 2), countdown=1).apply_async()

class SubTask(Task):
    def run(self, x, y, *args, **kwargs):
        return x+y

non_tracable_for_subtask_result = ParentTask().delay()

我需要一个画布模块(组,和弦等)可以在我的工作流程中的任务中动态扩展。是否可以在运行时将新的子任务动态链接到当前工作流(chord,group, etc.)? 我想要这样的东西

^{pr2}$

Tags: 模块runselftaskdef画布静态group