2025 年 Airflow 峰会将于 10 月 07-09 日举行。立即注册获取早鸟票!

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

None

不进行调度,仅用于“外部触发”的 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 运行条目。

此条目有帮助吗?