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

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

此条目是否有帮助?