Rasgele ve potansiyel olarak büyük miktarda alt görevler oluşturacak bir üst görevim var. Hem ebeveyn hem de tüm alt görevler tamamlandıktan sonra, hazır olduğumu belirtmek için veritabanımda bir bayrak ayarlamanız gerekir. Bunu yapmayı en iyi nasıl yaparım? ÖrneğinBir kereviz görevinin ve tüm alt görevlerin ne zaman tamamlandığını algılama
:
Her şeyin hazır olduğunu belirtmek için ilgili model üzerinde bir bayrak ayarlayabilirsiniz böylece master_task ve yumurtlar sahiptir alt görevler tüm tamamladıktan sonra ben algılamak gerekir@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()
Not: "TaskSet, Celery 3.0'daki grup yapısıyla değiştirildiği için kaldırılmıştır." – np8