Celery Chains - 是否可以在链中的两个不同任务之间进行选择?
Celery Chains - Is it possible to choose between two different tasks within a chain?
假设我有一条链
chain( t1.si() | t2.si() | t4.si() )
这将 运行 这些任务一个接一个地完成,但我需要的是,根据 t1,在 t2 或 t3 之间进行选择。这可能与链条有关吗?我在文档中找不到任何内容。所以像这样
chain( t1.si() | t2.si() or t3.si() | t4.si() )
据我所知,不可能以如此好的 "simple" 方式完成(请随意提交 CEP)。但是,编写解决方法很简单——将 t2 和 t3 包装在另一个任务中,我们称之为 t2_or_t3
,您的链变为:chain( t1.si() | t2_or_t3.si() | t4.si() )
我引用 "simple" 是因为它并不简单 - 决定是否调用一个任务或另一个任务的逻辑可能很复杂。
假设我有一条链
chain( t1.si() | t2.si() | t4.si() )
这将 运行 这些任务一个接一个地完成,但我需要的是,根据 t1,在 t2 或 t3 之间进行选择。这可能与链条有关吗?我在文档中找不到任何内容。所以像这样
chain( t1.si() | t2.si() or t3.si() | t4.si() )
据我所知,不可能以如此好的 "simple" 方式完成(请随意提交 CEP)。但是,编写解决方法很简单——将 t2 和 t3 包装在另一个任务中,我们称之为 t2_or_t3
,您的链变为:chain( t1.si() | t2_or_t3.si() | t4.si() )
我引用 "simple" 是因为它并不简单 - 决定是否调用一个任务或另一个任务的逻辑可能很复杂。