2025 年 Airflow 峰會將於 10 月 07-09 日舉行。立即註冊獲取早鳥票!

Cron 與時間間隔

您可以透過將 DAG 的 schedule 引數設定為 cron 表示式、一個 datetime.timedelta 物件,或以下 Cron 預設 之一,為其設定一個簡單排程。

from airflow.sdk import DAG

import datetime

dag = DAG("regular_interval_cron_example", schedule="0 0 * * *", ...)

dag = DAG("regular_interval_cron_preset_example", schedule="@daily", ...)

dag = DAG("regular_interval_timedelta_example", schedule=datetime.timedelta(days=1), ...)

Cron 預設

對於更復雜的排程需求,您可以實現一個 自定義時間表。請注意,Airflow 使用 croniter 庫解析 cron 表示式,該庫支援 cron 字串的擴充套件語法。請參閱他們在 github 上的文件。例如,您可以使用其擴充套件 cron 語法建立在每月第一個週一凌晨 12 點執行的 DAG 排程: 0 0 * * MON#1

提示

您可以使用線上 CRON 表示式編輯器,例如 Crontab guru

預設值

含義

cron

None

不進行排程,僅用於“外部觸發”的 DAG

@once

僅排程一次

@continuous

在前一次執行結束後立即執行

@hourly

每小時結束時執行一次

0 * * * *

@daily

每天午夜 (24:00) 執行一次

0 0 * * *

@weekly

每週日午夜 (24:00) 執行一次

0 0 * * 0

@monthly

每月第一天午夜 (24:00) 執行一次

0 0 1 * *

@quarterly

每季度第一天午夜 (24:00) 執行一次

0 0 1 */3 *

@yearly

每年 1 月 1 日午夜 (24:00) 執行一次

0 0 1 1 *

您的 DAG 將針對每個排程例項化,並在資料庫後端建立相應的 DAG 執行條目。

此條目有幫助嗎?