J'ai une tâche parente qui générera un nombre arbitraire et potentiellement important de sous-tâches. Une fois le parent et toutes les sous-tâches terminées, je dois définir un drapeau dans ma base de données pour indiquer qu'il est prêt. Comment ferais-je le mieux pour le faire?Détection d'une tâche de céleri et de toutes les sous-tâches
Par exemple:
@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()
je dois détecter quand le master_task et tous les sous-tâches qu'elle a fraye ont terminé pour que je puisse mettre un drapeau sur un modèle lié pour indiquer que tout est prêt
Notez que "TaskSet a été supprimé, car il a été remplacé par la construction de groupe dans Celery 3.0." – np8