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 运行条目。