gpt4 book ai didi

python - Celery:如何忽略和弦或链中的任务结果?

转载 作者:IT老高 更新时间:2023-10-28 22:02:47 26 4
gpt4 key购买 nike

我正在使用 celery ,我有几个任务需要按顺序执行。

例如我有这个任务:

@celery.task
def tprint(word):
print word

我想做这样的事情:

>>> chain(tprint.s('a') | tprint.s('b'))()

然后我得到 TypeError: tprint() 只需要 1 个参数(给定 2 个)

和chord一样,在这种情况下,我需要在一组任务之后执行一个任务:

>>> chord([tprint.s('a'), tprint.s('b')])(tprint.s('c'))

那么如何处理这种情况呢?我不关心每个任务的结果,但它们需要按顺序执行。


添加第二个参数不起作用:

@celery.task
def tprint(word, ignore=None):
print word

>>> chain(tprint.s('a', 0) | tprint.s('b'))()

这将打印出“a”和“None”。

最佳答案

有一个内置功能可以忽略链接和其他结果中的结果 - 不可变子任务。您可以使用 .si() 快捷方式而不是 .s() 或 .subtask(immutable=True)

更多详情:http://docs.celeryproject.org/en/master/userguide/canvas.html#immutability

关于python - Celery:如何忽略和弦或链中的任务结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13629507/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com