Я пытаюсь использовать «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» — это просто файл с одним словом в каждой строке.
Затем у меня есть работники сельдерея, настроенные для запуска задачи do как:
@app.task(task_acks_late = True)
def do(word):
sleep(1)
return f"I'm doing {word}"
Мой брокер — pyamqp, и я использую rpc для серверной части.
Я думал, что он будет печатать увеличивающееся количество задач для каждого цикла на стороне клиента, но все, что я получаю, это «0».