我正在尝试使用“ 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()
'word.txt'只是每行只有一个单词的文件。
然后我将celery worker设置为以以下方式运行do任务:
@app.task(task_acks_late = True)
def do(word):
sleep(1)
return f"I'm doing {word}"
我的经纪人是pyamqp,后端使用rpc。
我以为它会在客户端的每个循环中打印出越来越多的任务,但是我得到的都是“ 0”。
答案 0 :(得分:0)
问题不在 - ansible-playbook -i deploy/inventories/dev/inventory deploy/playbook.yml --extra-vars "application_version=$PROJECT_VERSION profile_secure=$PROFILE_SECURE" --vault-password-file ~/.vault_pass.pwd
方法中。由于result.0,您将得到零。在完成所有任务后,ready()保持completed_count
。似乎我们的False
后端存在错误,github上存在问题。考虑将后端设置更改为rpc
,据我所知它可以正常工作