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

Airflow Docker部署开启Catchup后仅单任务运行问题咨询

Airflow Catchup仅执行单个任务的排查与解决

以下是针对该问题的排查方向和解决方法:

1. 确认DAG状态是否激活

虽然配置了dags_are_paused_at_creation=true,但触发DAG后需确保DAG已被手动启用:

  • 登录Airflow UI,在DAG列表中找到目标DAG,确认右侧开关处于开启状态(灰色为暂停,绿色为激活)。若处于暂停状态,catchup补跑任务不会被调度。

2. 检查Scheduler运行状态

Scheduler负责生成历史补跑的DAG Run和Task Instance,需确认其正常工作:

  • 执行命令查看Scheduler日志:
    docker logs new-airflow-docker-airflow-scheduler-1
    
    重点搜索是否存在Creating DAG Run、Task instance queued等日志,或数据库连接、Redis连接报错。若有连接失败,需检查Postgres和Redis容器是否正常运行(用docker ps查看容器状态)。

3. 查看任务实例状态与Worker拾取情况

若Scheduler已生成大量Task Instance但未执行,需检查Worker是否正常接收任务:

  • 在Airflow UI的Task Instances页面,查看是否有大量任务处于queued状态。
  • 执行命令查看Worker日志:
    docker logs new-airflow-docker-airflow-worker-1
    
    确认是否存在Redis连接失败、worker_concurrency配置未生效的日志(搜索worker_concurrency确认值为16)。若Worker无法连接Redis,需检查Redis容器的网络配置是否与其他容器互通。

4. 验证Catchup配置是否生效

确认DAG的catchup=True未被覆盖:

  • 在Airflow UI的DAG详情页,进入Configuration标签,查看catchup的实际值是否为True。若为False,需检查DAG代码是否被修改后未重新加载,或存在全局配置覆盖(如core.dag_default_catchup被设置为False)。

5. 排查任务依赖与执行时长

若DAG存在任务上下游依赖,需确认首个任务是否卡住或执行时间过长:

  • 在Airflow UI的Task Instances页面,点击正在运行的任务,查看日志确认是否有报错或执行停滞。若任务本身执行时间远超预期,会阻塞后续任务启动。

6. 调整Scheduler的DAG扫描间隔

默认情况下,Scheduler每30秒扫描一次DAG文件,若DAG未被及时识别,会延迟补跑任务的调度:

  • 在Airflow配置中临时降低min_file_process_interval的值(如设置为5秒),重启Scheduler容器后观察是否生成大量补跑任务。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 11:35:53