Обнаружение, когда задача сельдерея и все подзадачи завершены

У меня есть родительская задача, которая порождает произвольное и потенциально большое количество подзадач. Как только родительский элемент и все подзадачи будут выполнены, мне нужно установить флаг в моей базе данных, чтобы указать, что она готова. Как мне лучше всего это сделать?

Например:

@task()
def master_task(foo):
    foo_obj = Foo.objects.get(id=foo)
    for bar in foo_obj.bar_set.all():
        more_work.delay(bar.id)

@task()
def more_work(bar):
   bar_obj = Bar.objects.get(id=bar)
   do_work()

Мне нужно определить, когда master_task и все подзадачи, которые она порождает, завершены, чтобы я мог установить флаг на связанной модели, чтобы указать, что все готов

5
задан John 30 June 2011 в 07:06
поделиться