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'),
}
}