>假设A到G是异步任务,我们希望实现像这个画布这样的任务工作流
/---> B()
A() ----> C() -> D()
---> E() -> F() -> G()
根据问题,我们需要使用 A() 的结果来启动多个链。
在代码中:
from celery import chain
# A (params) ?????
B.apply_async(params)
chain(
C.s(params), D.s(params)
).apply_async()
chain(
E.s(params), F.s(params), G.s(params)
).apply_async()
在 Celery Canvas 中,如何使用 A() 的结果异步地将多个链的第一个元素放在不运行 A() 三次的情况下?
(我正在使用 Celery 4.1.0 和 RabbitMQ 作为代理)
我知道
! b
,c
,e
维护秩序,但肯定a
会先于他们所有人完成,因为有一条链条。我只想使用 a
的返回值作为 b
、c
和 e
的输入参数。