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 |
|---|---|---|
|
不進行排程,僅用於“外部觸發”的 DAG |
|
|
僅排程一次 |
|
|
在前一次執行結束後立即執行 |
|
|
每小時結束時執行一次 |
|
|
每天午夜 (24:00) 執行一次 |
|
|
每週日午夜 (24:00) 執行一次 |
|
|
每月第一天午夜 (24:00) 執行一次 |
|
|
每季度第一天午夜 (24:00) 執行一次 |
|
|
每年 1 月 1 日午夜 (24:00) 執行一次 |
|
您的 DAG 將針對每個排程例項化,並在資料庫後端建立相應的 DAG 執行條目。