AirFlowのControlFlow5種類
Branchingは、指定したパスにあるタスクだけ実行させるよう指定する
Latest Onlyは、実行時間が現在でない場合にスキップする(実行時間が現在である場合だけ実行する)
Depends on pastは、直前のDAGが実行成功していた場合に実行する(つまり失敗してたら自分も実行やーめよっとサボる)
Trigger Rulesは、上流のタスクがどうなったら自分も実行するねんって指定のルール
デフォは「上流のタスクが全部成功したら(all_success)」
branching
latest only
AirFlowは、今が2022/10/09だとしても「現在日時は2022/10/08であるとして」実行する、みたいなことができる
が、この場合でも「いや、この部分だけは2022/10/09のときだけ実行してくれ」ってのがある
そういうときに使う
trigger rules
all_success(デフォルト)。すべてのアップストリームタスクが成功した
all_failed。すべてのアップストリームタスクが失敗またはupstream_failedの状態にある
all_done。すべてのアップストリームタスクの実行が終了した状態
all_skipped。すべてのアップストリームタスクがスキップされた状態
one_failed。少なくとも1つの上流タスクが失敗した(すべての上流タスクの終了を待たない)
one_success。少なくともひとつの上流タスクが成功した (すべての上流タスクの完了を待たない)
none_failed。すべての上流タスクが失敗またはupstream_failedでない、つまり、すべての上流タスクが成功またはスキップされたこと
none_failed_min_one_success。すべての上流タスクが失敗またはupstream_failedでなく、少なくとも1つの上流タスクが成功した。
none_skipped。つまり、すべてのアップストリームタスクが成功、失敗、またはupstream_failedの状態である。
always。 依存関係が全くなく、いつでもこのタスクを実行できる。
---
成功、失敗、終了、スキップがある
none_failed*
「失敗はしてない」を担保したい
もう一つ、「でもスキップしかしてない」も弾きたい