2017-06-14 15 views
0

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)キューに登録した作業者がタスクを選択して実行します。

従業員が依存関係に従って作業を実行することを確認するために、ここで誰が誰であるのか混乱しています。セロリの労働者は依存関係について考えているのですか?ブローカーが行うメタデータ管理がありますか?

ここに入力していただければ幸いです。ありがとう!

答えて

0

実際セロリは、メッセージ転送のメカニズムとしてボンネットの下でkombuを使用しており、セロリのための別の仕事をするセロリの依存関係は、エンドユーザー/開発者にとって多種多様なタスクを認識しない高レベルのフレームワーク。あなたはちょうどタスクや他の人のためのセロリを使用し、コブ、ビリヤードなどのフードの特定のライブラリの下で彼らの仕事を行います。セロリのソースコードを確認してより多くの洞察を得ることをお勧めします。

+0

私はソースコードを調べ始めました。あなたはKombuがワークフローを理解し、キューに入れるメッセージと次に何を実行するのかを知っている人であることを示唆していますか? – yguw

関連する問題