下面是我正在尝试做的一个非常简单的例子:
@shared_task
def add(x, y):
return x + y
@shared_task
def sub(x, y):
return x - y
@shared_task
def mult(x, y):
return x * y
c = group(
chain(
add.s(4), mult.s(2)
),
sub.s(1)
)(3)
这应该[14, 2]
给我结果,但我收到以下错误消息:
类型错误:add(( 恰好需要 2 个参数(给定 1 个(
因此,部分签名似乎有问题,并且初始3
没有传递给我的链中的函数。这里有什么问题,有什么办法可以解决这个问题吗?
任何添加的参数( 3
( 将仅附加到签名( task.s
( 中的参数前面。它们不会被传播到原语(如链、组、和弦(。
如果您事先知道添加的参数,则可以
c = group(
chain(
add.s(4, 3), mult.s(2)
),
sub.s(1)
)(3)
否则,您必须重新设计工作流程。