You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何设置无延迟定时调度 实现DAG每月首日准时执行

月度首日DAG调度延迟解决方案

触发延迟根因

你使用的0 10 1 * * Cron表达式本身逻辑无误,延迟是Airflow默认调度机制导致的:
Airflow的DAG Run只会在调度周期的结束时间点触发,如果你把DAG的start_date设置为2024-10-01 10:00,搭配月度调度规则,第一个调度周期的范围是2024-10-01 10:00 ~ 2024-11-01 10:00,对应任务就会到11月1日才会触发,也就是你遇到的延迟一个月的问题。

解决方案

方案1:调整start_date参数(推荐)

不需要修改现有Cron表达式,只需要把DAG的start_date设置为首次期望执行日期的前一个月同期时间即可:
比如你期望10月1日10点首次执行任务,就把start_date设置为固定值:
start_date = datetime(2024, 9, 1, 10, 0)

注意:禁止给start_date设置datetime.now()这类动态值,动态时间会导致调度周期计算持续异常,永远出现触发延迟。

方案2:补跑漏跑的历史任务

如果DAG已经上线,漏跑了10月1日的任务,可以临时把catchup参数设置为True,Airflow会自动补跑start_date到当前时间之间所有未触发的DAG Run,补跑完成后可根据需求关闭catchup避免意外补跑历史任务。

验证建议

调整配置后可以先把调度间隔临时修改为短周期(比如*/5 * * * *每5分钟触发一次),验证触发逻辑符合预期后再改回月度调度规则。

内容的提问来源于stack exchange,提问作者Guille

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 16:06:07