Cron 與時間間隔¶
您可以設定 DAG 依據簡單的排程執行,方法是將其 schedule
參數設定為 cron 表達式、datetime.timedelta
物件,或其中一個 Cron 預設值。
from airflow.models.dag 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 語法建立一個 DAG 排程,使其在每月第一個星期一的午夜 12 點執行:0 0 * * MON#1
。
提示
您可以使用 CRON 表達式的線上編輯器,例如 Crontab guru
預設 |
含義 |
cron |
---|---|---|
|
不要排程,專門用於「外部觸發」的 DAG |
|
|
排程一次且僅一次 |
|
|
在前一次執行完成後立即執行 |
|
|
每小時執行一次,在小時結束時 |
|
|
每天午夜 (24:00) 執行一次 |
|
|
每週執行一次,在星期日午夜 (24:00) |
|
|
每月執行一次,在每月第一天的午夜 (24:00) |
|
|
每季執行一次,在第一天的午夜 (24:00) |
|
|
每年執行一次,在 1 月 1 日的午夜 (24:00) |
|
您的 DAG 將針對每個排程進行實例化,並在資料庫後端中建立對應的 DAG Run 項目。