web-dev-qa-db-ja.com

気流のdepends_on_pastの説明

公式Airflowドキュメント によれば、task instancestaskのすぐ上流は、成功状態である必要があります。また、depends_on_past = Trueを設定した場合、前のタスクインスタンスは成功している必要があります(そのタスクの最初の実行である場合を除く)。

ご存知のように、タスクは「インスタンス化され、パラメータ化された」演算子のようなものです。

これは私を混乱させるものです。例えば:

DAG: {op_1} -> {op_2} -> {op_3}

{op_2}は、{op_1}から1つのパラメーターを取得して処理する単純なPythonOperatorです。

私の理解では、op_2(param_1)とop_2(param_2)は2つの異なるタスクと見なされます。

depends_on_pastがTrueに設定されている場合:

  1. Op_2(param_1)がまだ実行中の場合。 op_2(param_2)を実行できますか?
  2. Op_2(param_1)が前回の実行で失敗した場合。現在の実行でop_2(param_1)を実行できますか?
9
WeiHao

トリガールールの公式 docs から:

depends_on_past(ブール)Trueに設定すると、タスクの以前のスケジュールが成功しなかった場合にタスクがトリガーされなくなります。

そのため、DAGの前回の実行が失敗しない限り、depends_on_pastは要素であってはなりません。前回の実行がタスクを正常に実行した場合、現在の実行にはまったく影響しません。

9
Meghdeep Ray