簡體   English   中英

為什么 Airflow 繼續運行 DAG?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM