芹菜:组内的链 - 部分签名失败

  • 本文关键字:失败 芹菜 python celery
  • 更新时间 :
  • 英文 :


下面是我正在尝试做的一个非常简单的例子:

@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)

否则,您必须重新设计工作流程。

相关内容

  • 没有找到相关文章

最新更新