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

Airflow DAG每日定时任务被重复触发4次,配置catchup等参数无效如何解决

问题排查及解决方案

1. 修复错误的调度时间配置

你代码中的schedule_interval参数配置错误,是导致重复触发的核心原因:

  • 标准5位cron表达式的结构为分 时 日 月 周,你想要实现每日19点触发,正确写法为schedule_interval='0 19 * * *'
  • 你当前写的0 19 * * * *是6位秒级cron结构,实际含义为「每小时的第19分钟0秒触发」,和你预期的每日1次完全不符

2. 排查DAG目录重复文件

检查Airflow的dags文件夹下是否存在多个包含同名DAG的Python文件,比如备份文件postgres_backup_bak.py、旧版本代码文件等,Airflow会读取所有.py后缀文件中的DAG配置,如果你有4个包含该DAG的文件,就会出现每日触发4次的情况。

3. 补充任务超时配置

在default_args中添加execution_timeout参数,避免备份任务运行时间过长被Airflow判定为超时强制终止,进而触发重试:

default_args = {
    'retries': 1,
    'retry_delay': timedelta(minutes=30),
    'start_date': datetime(2021, 1, 1),
    'execution_timeout': timedelta(hours=2) # 可根据实际备份耗时调整
}

4. 检查多调度器配置

如果你用的是Airflow 2.x多调度器部署,需要确认配置文件中开启了行级锁,避免多个调度器重复调度同一个DAG:

[scheduler]
use_row_level_locking = True

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 13:36:04