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

@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 Run 項目。

這個條目有幫助嗎?