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" 是因为它并不简单 - 决定是否调用一个任务或另一个任务的逻辑可能很复杂。