5

DAG の実行を毎日実行するようにスケジュールしました。1日で完璧に機能します。

ただし、毎日、現在の日 {{ ds }} だけでなく、前の n 日間 (n = 7 としましょう) も再実行したいと考えています。

たとえば、「2018-01-30」に実行される予定の次の実行では、実行日として「2018-01-30」を使用して DAG を実行するだけでなく、すべての DAG を再実行するように Airflow を希望します。 「2018-01-23」から「2018-01-30」までの前日。

バックフィルが自動的に実行されるように、以前の実行を「無効化」する簡単な方法はありますか?

4

2 に答える 2

0

1 日に 1 回実行される DAG で、過去 7 日間だけタスクを実行することを考えたことはありますか? それぞれが実行日からのオフセット日が異なるSubDAGを生成する 7 つのタスクしかないと思います。

これにより、デバッグが容易になり、履歴がきれいになると思います。既に実行されたタスクをバックフィルしようとすると、タスク インスタンスを削除するか、それらの状態をすべて NONE に設定する必要があると思います。その後、それらの DAG 実行でバックフィルをトリガーする必要があります。物事が失敗したときに追跡するのが難しくなり、少し面倒に見えます.

于 2018-01-29T18:38:38.317 に答える