Apache Airflow (五) :DAG调度触发时间

本文详细解释了Airflow中的DAG调度规则,强调了start_date和schedule_interval的作用,以及Airflow如何在每个周期的末尾而非开始时刻触发任务执行,同时介绍了execution_date的含义。
摘要由CSDN通过智能技术生成

🏡 个人主页IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客

 🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。

 🔔 博主个人B栈地址:豹哥教你大数据的个人空间-豹哥教你大数据个人主页-哔哩哔哩视频


在Airflow中,调度程序会根据DAG文件中指定的“start_date”和“schedule_interval”来运行DAG。特别需要注意的是Airflow计划程序在计划时间段的末尾触发执行DAG,而不是在开始时刻触发DAG,例如:

default_args = {
    'owner': 'airflow', # 拥有者名称
    'start_date': datetime(2021, 9, 4),  # 第一次开始执行的时间,为 UTC 时间
    'retries': 1,  # 失败重试次数
    'retry_delay': timedelta(minutes=5),  # 失败重试间隔
}



dag = DAG(
    dag_id = 'myairflow_execute_bash', #DAG id ,必须完全由字母、数字、下划线组成
    default_args = default_args, #外部定义的 dic 格式的参数
    schedule_interval = timedelta(days=1) # 定义DAG运行的频率,可以配置天、周、小时、分钟、秒、毫秒
)

以上配置的DAG是从世界标准时间2021年9月4号开始调度,每隔1天执行一次,这个DAG的具体运行时间如下图:

自动调度DAG 执行日期

自动调度DAG实际执行触发时间

2021-09-04,00:00:00+00:00

2021-09-05,00:00:00+00:00

2021-09-05,00:00:00+00:00

2021-09-06,00:00:00+00:00

2021-09-06,00:00:00+00:00

2021-09-07,00:00:00+00:00

2021-09-07,00:00:00+00:00

2021-09-08,00:00:00+00:00

2021-09-08,00:00:00+00:00

2021-09-09,00:00:00+00:00

... ...

... ...

以上表格中以第一条数据为例解释,Airflow正常调度是每天00:00:00 ,假设当天日期为2021-09-04,正常我们认为只要时间到了2021-09-04 00:00:00 就会执行,改调度时间所处于的调度周期为2021-09-04 00:00:00 ~ 2021-09-05 00:00:00 ,在Airflow中实际上是在调度周期末端触发执行,也就是说2021-09-04 00:00:00 自动触发执行时刻为 2021-09-05 00:00:00。

如下图,在airflow中,“execution_date”不是实际运行时间,而是其计划周期的开始时间戳。例如:execution_date 是2021-09-04 00:00:00 的DAG 自动调度运行的实际时间为2021-09-05 00:00:00。当然除了自动调度外,我们还可以手动触发执行DAG执行,要判断DAG运行时计划调度(自动调度)还是手动触发,可以查看“Run Type”。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT贫道

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值