2017-07-20 1 views
1

次のシナリオを検討してください。既存のグループまたはコードにタスクを追加

3種類のタスクがあります。 A,BおよびCAは、Bの入力を生成することを意味し、Bは、Aから入力を受け取った後に多くのCのタスクを作成することになっています。

最初にgroup(A, B)を定義できるのは、CBであるためです。しかし、私はすべてのCタスクが完了するのを待って、メインタスクが完了したと結論づけたいと思っています。

セロリのユーティリティを使ってこれを行う方法はありますか?

答えて

0

私が今まで使っている解決策は、C内のタスクがBであるのを待っています。

類似のもの;

from celery.result import allow_join_result 

def B(): 
    tasks = get_c_tasks() 

    g = group(tasks) 
    gr = g.apply_async() 
    with allow_join_result(): 
     return gr.join(propagate=False) 
関連する問題