Cron表达式与时间间隔¶
您可以通过将DAG的schedule参数设置为cron表达式、datetime.timedelta对象或Cron Presets之一来设置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运行记录。