Celeryの初心者として本当に混乱しています。クライアント(ipython)がCelery Canvasを使用してDAGを送信すると、rabbitmqがメッセージ依存関係を処理する方法についていくつかの入力が必要ですワークフロー)プリミティブ(チェーン、コード、グループなど)Celery-rabbitmqでタスクの依存関係を処理する人
A(> B、C) - > D(Diamond DAG)ここでAが最初に実行され、BとCが並行してBとCの出力が使用されるDAGがあるとします。 D.
での入力は、私は私の理解では、1)クライアントが提出するDAG 2)セロリは通常、JSONでメッセージ()3には、このDAGを変換していることであるDAGすなわち
wf = (A.s(2, 2) | group(B.s(), C.s(25)) | D.s(1000)).delay()
を思い付くことができました)このメッセージをメッセージブローカーに送ります4)メッセージブローカーは依存関係についていくつか考えていますか? (わからない)依存関係に基づいてタスクをキューに入れます5)キューに登録した作業者がタスクを選択して実行します。
従業員が依存関係に従って作業を実行することを確認するために、ここで誰が誰であるのか混乱しています。セロリの労働者は依存関係について考えているのですか?ブローカーが行うメタデータ管理がありますか?
ここに入力していただければ幸いです。ありがとう!
私はソースコードを調べ始めました。あなたはKombuがワークフローを理解し、キューに入れるメッセージと次に何を実行するのかを知っている人であることを示唆していますか? – yguw