Celery documentationCelery documentation, görevlerin diğer görevlerin sonuçlarında beklemesini sağlamak için kötü bir fikir olduğunu öne sürüyor… Ancak önerilen çözüm (“iyi” başlığa bakın) istenen bir şey bırakıyor. Spesifik olarak, alttakinin sonucunu arayan kişiye geri götürmenin açık bir yolu yoktur (aynı zamanda çirkin bir şeydir).Python + Celery: Chaining işler?
Yani, “zincirleme” işlerinin herhangi bir yolu var mı, bu yüzden arayan son işin sonucunu alıyor? Örneğin, add
örnek kullanımı:
>>> add3 = add.subtask(args=(3,))
>>> add.delay(1, 2, callback=add3).get()
6
Alternatif olarak, bu Sonuç örneklerini dönmek için OK? Örneğin:
@task
def add(x, y, callback=None):
result = x + y
if callback:
return subtask(callback).delay(result)
return result
Bu zincirdeki “nihai” işinin sonucu basit ile retrived olabilir izin verir:
result = add(1, 2, callback=add3).delay()
while isinstance(result, Result):
result = result.get()
print "result:", result
Ne önermek iyi çalışacak. Başka bir alternatif görmüyorum, değil mi? – asksol