[英]Why does Airflow keep running the DAG?
我正在為一個數據工程項目學習 Airflow,並且我設置了一個 DAG 來在線檢索 csv 文件。 我正在測試 schedule_interval 並最初將其設置為 30 分鍾。
我在 22:17 啟動了 Airflow 調度程序,並期望 DAG 至少在 22:47 執行。 但是,DAG 幾乎每秒都在運行,我從日志中看到執行日期是幾個小時前。
這是因為 UTC 與我當地時間的時差嗎? DAG 試圖趕上時差?
您的 DAG 正在回填。 Airflow 將嘗試從啟動時趕上您的當前時間。
例如,如果您啟動 DAG 的確切時間是 3 月 6 日上午 10:00,並且 DAG 的執行日期為 3 月 6 日上午 6:00(假設相同的時區),調度間隔為 30 分鍾,那么DAG 將立即運行,直到它“趕上”到上午 10:00。
也就是說,它將一個接一個地運行(6:00AM - 10:00AM = 4 hours; 4 hrs/30 mins = 8)
8 次,直到它到達當前時刻。
這是因為 UTC 與我當地時間的時差嗎? DAG 試圖趕上時差?
似乎是這樣,如果 DAG 的執行開始日期是您啟動 DAG 的任何時間。
這將非常有幫助。 如果您也可以粘貼 DAG 或至少粘貼 DAG 配置 object。
確保設置標志catchup=False
以便不會發生回填。 默認值為True
。 如果您沒有設置catchup=False
調度程序假定它需要回填,因此它每 30 秒運行一次。
請參閱下面的示例
dag = DAG(
dag_id='my_test_dag'
, default_args=default_args
, schedule_interval='1 * * * *'
, start_date=datetime(2020, 9, 22, tzinfo=local_tz)
, catchup=False
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.