如何设置Airflow DAG的schedule_interval参数实现每日特定时间触发
Airflow DAG每日多特定时间触发的实现方法
要让Airflow DAG每日在10:30、13:00和14:00这三个时间点触发,最直接的方式是使用Cron表达式作为schedule_interval参数的值,Airflow原生支持这种多时间点的配置。
方法:使用Cron表达式
Cron表达式的格式为 分钟 小时 日 月 星期,针对你的需求,对应的表达式是 30 10,13,14 * * *,各部分含义:
30:指定触发的分钟数为3010,13,14:指定触发的小时为10、13、14(多个时间点用逗号分隔)*:匹配任意日期、月份、星期,即每日触发
代码示例
from airflow import DAG from airflow.operators.dummy import DummyOperator from datetime import datetime default_args = { 'owner': 'airflow', 'start_date': datetime(2024, 1, 1), 'retries': 1, } with DAG( dag_id='daily_scheduled_dag', default_args=default_args, schedule_interval='30 10,13,14 * * *', # 核心配置:每日三个时间点触发 catchup=False, # 禁止补跑启动前未执行的任务,根据需求调整 tags=['daily', 'multi-time'], ) as dag: init_task = DummyOperator(task_id='init_task') # 在这里添加你的业务任务逻辑
注意事项
- Airflow底层依赖
croniter库解析Cron表达式,主流版本(2.x及以上)均能正常处理这种多时间点配置。 catchup参数设为False时,DAG启动后只会执行未来的触发任务;若需要补跑历史时间段的任务,可将其设为True。
内容的提问来源于stack exchange,提问作者gabikripka
相关产品推荐
相关产品推荐

