我正在尝试从签名列表中生成和弦。当链开始执行时,这个列表的长度是未知的。例如。的输出task_c
是一个 lenth 列表n
,该列表应该生成一个相同长度的 celery 签名列表,以并行执行。我只能使用部分签名访问上一个任务的结果.s()
,那么如何在我的链中动态定义这组签名?
例如。我该怎么做:
@task
def task_d(kwargs):
return [task_e.si(i) for i in random.sample(range(10, 30), 5)]
ctask = chain(
task_a.si(**kwargs),
task_b.si(**kwargs),
task_c.si(**kwargs),
chord(
[
task_e.si(**kwargs),
task_e.si(**kwargs),
task_e.si(**kwargs),
],
my_callback.si(**kwargs),
),
),
……到这个
ctask = chain(
task_a.si(**kwargs),
task_b.si(**kwargs),
task_c.si(**kwargs),
chord(
[task_d.s(**kwargs)], <<<<<< ?
my_callback.si(**kwargs),
),
),