Celery任务链的取消?

11

1
当您想要停止任务时,在任务中引发异常怎么样? - RickyA
抛出异常对我没有起作用。我在这里发布了详细的解释:https://dev59.com/LGQm5IYBdhLWcg3wowMF - Salami
1个回答

5
在较新版本的Celery(3.1.6)中,您可以通过遍历整个任务链并逐个撤销每个项来撤销整个任务链。
# Build a chain for results
from tasks import addd
from celery import chain

def revoke_chain(result):
    while result:
        result.revoke()
        result = result.parent

# independent tasks (with immutable signatures)
c = chain(*tuple(add.si(i,i) for i in xrange(50)))
h = c()

# some time later ...
revoke_chain(h)

# dependant task
c = add.s(1,1) | add.s(2) | add.s(3)
h = c()

# some time later ...
revoke_chain(h)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接