問題タブ [workflow-engine]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - XCOM でのタスクの JSON 表現を使用した、Airflow でのタスクのランタイム/動的生成
ワークフローの実行時に実行時にタスクの動的グラフを作成できる Airflow のようなフレームワークを評価しています。つまり、ワークフローを開始する前にタスクとその依存関係を具体的に知りません。グラフのレベル数しか知りません。
ここで説明されているように、Airflow を使い始め、XCom を使用してグラフの状態を維持しています: Airflow で動的ワークフローを作成する適切な方法
また、タスクの依存関係の説明を含む JSON スニペットを XCom 行に保存することで、このアプローチを少し拡張しています。たとえば、次のようになります。
DAG を再実行する必要がないことに注意してください。私の DAG は外部でスケジュールされることを意図しており、最初の DagRun が完了すると、その後新しいタスクが削除/削除/変更されることはありません。再実行が必要な場合は、代わりに新しい DAG を作成します。
私が使用している手法は次のとおりです。2 つのタスクで DAG を作成します。1 つはセンサーです (これにより、DagRun が最後まで常に実行状態にあることが保証されます)。
Sensor がタスクとその依存関係を表す JSON ファイル (フォルダーに入れられ続ける) をプッシュする間、私は DAG コードで XCom からタスクをプルしようとします。
私の質問は、Airflow はそのようなユースケースの有効な手段ですか? それとも、主なユース ケース (つまり、実行時に生成されない静的タスクを使用した固定ワークフロー) から少し拡張しすぎているのでしょうか?
このアプローチは、たとえば、数万の DAG と数十万のタスクに対応できますか? または、これをより簡単な方法で達成するための他の同様のツールはありますか?