如何使用completed_count在 Celery 中跟踪任务组完成情况?



我正在尝试使用"completed_count(("来跟踪 Celery 中一个组中还剩下多少任务。

我的"客户端"运行这个:

from celery import group
from proj import do
wordList=[]
with open('word.txt') as wordData:
for line in wordData:
wordList.append(line)
readAll = group(do.s(i) for i in wordList)
result = readAll.apply_async()
while not result.ready():
print(result.completed_count())
result.get()

"单词.txt"只是一个文件,每行都有一个单词。

然后,我将芹菜工人设置为按以下方式运行执行任务:

@app.task(task_acks_late = True)
def do(word):
sleep(1)
return f"I'm doing {word}"

我的经纪人是pyamqp,我使用rpc作为后端。

我以为它会为客户端的每个循环打印越来越多的任务,但我得到的只是"0"。

问题不在于completed_count方法。你得到零,因为 result.ready(( 在所有任务完成后保持False。似乎我们在后端有一个错误rpcgithub上存在问题。考虑将后端设置更改为amqp,如我所见,它工作正常

相关内容

  • 没有找到相关文章

最新更新