公式Airflowドキュメント によれば、task instances
task
のすぐ上流は、成功状態である必要があります。また、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に設定されている場合:
トリガールールの公式 docs から:
depends_on_past
(ブール)Trueに設定すると、タスクの以前のスケジュールが成功しなかった場合にタスクがトリガーされなくなります。
そのため、DAGの前回の実行が失敗しない限り、depends_on_past
は要素であってはなりません。前回の実行がタスクを正常に実行した場合、現在の実行にはまったく影響しません。