Cron & 时间间隔¶
你可以通过将其 schedule
参数设置为 cron 表达式、一个 datetime.timedelta
对象或一个Cron 预设来设置 DAG 按照简单的计划运行。
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 运行条目。