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

Airflow调度cron星期字段用#配置按月第N周执行任务未正常运行

问题根因及排查方案

1. 核心原因:Croniter依赖库版本不兼容

Airflow的cron表达式解析完全依赖croniter第三方库,该库仅在0.3.34及以上版本才支持#后缀的「月度第N周指定星期」调度语法。低版本croniter解析到#字符时会直接判定表达式无效,导致DAG调度逻辑不生效。
你可以执行以下命令验证部署环境的croniter版本:

pip show croniter

如果版本低于0.3.34,执行以下命令升级后重启Airflow调度器即可:

pip install -U croniter>=0.3.34

如果你的Airflow是集群部署,需要确保所有节点的croniter版本都已升级到兼容版本,否则会出现部分调度规则生效、部分不生效的异常情况。

2. 其他高频排查点

  • 时区配置不匹配:Airflow默认使用UTC时区,如果你预期的执行时间是本地时区(如东八区)的12:30,实际触发时间会比预期晚8小时。你可以在DAG定义中显式指定时区避免该问题,示例如下:
    with DAG(
        # 其他原有参数保持不变
        schedule_interval='30 12 * * 1#2',
        start_date=datetime(2021, 8, 1, 0, 0),
        timezone='Asia/Shanghai' # 替换为你实际使用的时区
    ) as dag:
    
  • 历史执行记录冲突:你开启了catchup=True配置,如果对应日期的DAG运行实例已经被手动标记为成功/跳过,调度器不会重复触发该日期的任务。你可以在DAG详情页的「树视图」或「日历视图」查看对应日期的执行状态,确认是否存在已跳过的实例。
  • DAG加载状态异常:部分配置无法触发的情况,可先检查Airflow调度器日志是否有对应DAG的语法报错、加载失败记录,确认DAG没有被调度器标记为无效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 02:39:02