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

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

此条目有帮助吗?