Cron 和时间间隔¶
你可以通过将 DAG 的 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 语法创建一个在每月第一个星期一的凌晨 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 运行条目。