Django + Celery: Как запустить задачу после завершения подзадач из разных запланированных задач

В настоящее время я создаю webapp с помощью Django и Celery. У меня есть одна задача (sometask), которая добавляет в очередь неизвестное количество других задач (othertask) в цикле for. Теперь я не понимаю, как я могу запустить другую задачу (task3) после того, как будет выполнена sometask со всеми подзадачами.

Я понимаю, что, например, можно выстроить цепочку задач, но если я выстрою цепочку из других задач, то она будет выполняться до завершения подзадач. Не мог бы кто-нибудь подсказать, как сделать так, как я описал?

Пример моего tasks.py

@shared_task(bind = True) 
def sometask(self):
    for whatever:
       othertask.delay()
    return "done"

@shared_task(bind = True) 
def othertask(self):
    pass

@shared_task(bind = True) 
def task3(self):
    pass

Celery.py:

app.conf.beat_schedule = {
   'weekly':{
       'task': 'webapp.tasks.sometask',
       'schedule': crontab(minute=0, hour=23, day_of_week='sat'),
   }
}

Вернуться на верх