Надеюсь, что все хорошо!
Проблема: я пытаюсь запустить группу дочерних задач внутри цепочки, затем на самом родительском уровне у меня есть группа, обернутая вокруг цепочек. Дочерние задачи выполняются;однако результаты от самого родительского группового примитива заканчиваются до того, как дочерние задачи могут выплюнуть свои результаты.
Пример
--- У меня есть 3 задачи ниже --
@app.task
def task_one(seconds):
time.sleep(seconds)
return [seconds + 0.1, seconds + 0.2]
@app.task
def task_two(seconds):
return group(task_three.signature(args=(x,)) for x in seconds)()
@app.task
def task_three(seconds):
time.sleep(seconds)
return {
'sleep': seconds
}
--- Задачи называются так ---
g = group(
chain(
task_one.s(x),
task_two.s()
) for x in range(1, 3)
)
promise = g.apply_async()
print(promise.get())
Функция task_two
создаст группу задач (task_three
) для выполнения,После запуска самая внешняя группа завершит выполнение и вернет результаты ДО того, как завершатся задачи task_three
.
Есть идеи, почему это происходит?