Сельдерей - Выполнение подзадач внутри группы цепочек - PullRequest
1 голос
/ 09 октября 2019

Надеюсь, что все хорошо!

Проблема: я пытаюсь запустить группу дочерних задач внутри цепочки, затем на самом родительском уровне у меня есть группа, обернутая вокруг цепочек. Дочерние задачи выполняются;однако результаты от самого родительского группового примитива заканчиваются до того, как дочерние задачи могут выплюнуть свои результаты.

Пример

--- У меня есть 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.

Есть идеи, почему это происходит?

...