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

Airflow DAG异常启动问题:Docker Compose启动后立即触发执行

问题原因分析
  • start_date早于当前系统时间:Airflow的核心调度逻辑是,当DAG被加载(比如Docker启动后初始化加载)时,会自动补跑start_date到当前时间范围内所有未执行的调度任务。如果你的start_date(2024-03-04 09:55)早于启动Airflow时的实际时间,Airflow会判定该时间点的任务已逾期,因此启动后立刻触发执行。

  • 时区不匹配:如果你的start_date未指定时区,而Airflow默认使用UTC时区,当本地时区与UTC存在时差时,可能导致你设置的时间在UTC时区下实际属于过去的时间。比如本地时区为东八区时,2024-03-04 09:55东八区对应UTC的2024-03-04 01:55,若当前UTC时间晚于该点,就会触发立即执行。

  • schedule_interval配置问题:如果你的DAG将schedule_interval设为@once或者极短的时间间隔(比如*/1 * * * *),即使start_date是过去的时间,也会触发立即执行。

解决建议
  • 若希望DAG从start_date开始按调度间隔执行,且不补跑历史任务,可在DAG定义中添加catchup=False参数:

    dag = DAG(
        'your_dag_id',
        default_args=default_args,
        schedule_interval='@daily',
        catchup=False
    )
    
  • 确保start_date的时区与Airflow配置一致,建议显式指定时区:

    from datetime import datetime
    import pendulum
    
    default_args = {
        # ...其他参数
        'start_date': datetime(2024, 3, 4, 9, 55, 0, tzinfo=pendulum.timezone('Asia/Shanghai'))
    }
    
  • 确认schedule_interval符合预期,避免设置过短的间隔或@once导致非预期的立即执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 15:00:49