web-dev-qa-db-ja.com

Airflow:AirflowのDAGのcrontab時間を変更します

毎日3:00に実行されているDAGがありますが、過去数週間は正常に実行されました。

実行する日付を7:00に更新しましたが、過去2日間は実行されなかったようです。ステータスが「実行中」(緑色)の2日間のタスクを確認できますが、コマンドはトリガーされません。

DAGの実行時間を変更するには、さらに何かをする必要がありますか?

これを解決する過去の1つの方法は、メタデータベースでこのDAGのタスクをクリーンアップし、start_dateを更新することでしたが、これを再度実行することは避けたいと思います。

誰か提案がありますか?

12
David Batista

ダグをスケジュールするために、Airflowは最後のexecution dateを探し、schedule intervalを合計します。この時間が経過すると、dagが実行されます。開始日を単純に更新することはできません。これを行う簡単な方法は、start dateschedule intervalを編集し、dagの名前を変更して(例:xxxx_v2.py)、再デプロイすることです。

11
p.magalhaes

DAGの名前を変更する別の解決策は、データベース内のDAGの以前のすべてのタスクインスタンスとDAG実行のexecution_dateを編集することです。変更するテーブルは、それぞれtask_instancedag_runです。

このアプローチの欠点の1つは、完了したタスクのログをWebサーバーから参照できなくなることです。

4
Conor

デビッド、
1。 Experimental REST APIを介してdagを削除することもできます。 DAGの削除
2。目的のstart_dateを変更します。
3。そして、同じDAGを追加し直します。

1