将任务签名设置为芹菜中多链的起始任务
Setting a signature of a task as starting task of multipe chain in celery
假设 A 到 G 是异步任务,我们想要实现这样的任务工作流 canvas
/---> 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
的return值作为b
、c
和e
的输入参数。
假设 A 到 G 是异步任务,我们想要实现这样的任务工作流 canvas
/---> 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
的return值作为b
、c
和e
的输入参数。