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

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运行记录。

这篇内容对您有帮助吗?