タスクAの後にタスクBを実行する必要がある場合がありますが、タスクAの結果を返します。ドキュメントを見て、(同期サブタスクの起動を避ける)しようとしました
したがって、次のようなチェーンを使用します。
@celery.task
def A():
return 5
@celery.task
def B():
return 2
def do_all():
chain = A.s() | B.s()
chain()
return result_of_A
しかし、これはうまくいきません。私の場合、必要なもの:
- B にはパラメータがありません。A の結果は受け入れません。
- B はA の完了後に実行する必要があります
- B が完了するのを待つ必要はなく、その結果も必要ありません (B は非同期でなければなりませんか?)
- do_all で A の結果を返すにはどうすればよいですか? (Aは同期に違いない?)
これをチェーンやその他のサブタスク プリミティブで実装することは可能ですか?