docker-compose部署Airflow如何开启热重载快速开发scheduler服务
Docker Compose 部署 Airflow 开启 Scheduler 热重载方法
热重载生效后,修改DAG、自定义插件等代码时不需要重启scheduler容器,2-3秒内就会被scheduler识别加载,大幅提升开发调试效率,配置步骤如下:
1. 修改scheduler服务环境变量
编辑docker-compose.yml,在scheduler服务的environment配置段新增以下参数:
AIRFLOW__SCHEDULER__DAG_DIR_LIST_INTERVAL=2:将scheduler扫描DAG目录的间隔从默认300秒(5分钟)调整为2秒,兼顾响应速度和CPU占用AIRFLOW__SCHEDULER__MIN_FILE_PROCESS_INTERVAL=0:关闭DAG文件处理的最小间隔限制,文件变动后立刻触发解析- 可选配置:
AIRFLOW__CORE__LOAD_EXAMPLES=False,关闭官方示例DAG加载,减少无效扫描的性能消耗
2. 确认目录挂载配置正确
热重载的前提是scheduler容器能直接读取到你本地修改的代码,需要在scheduler服务的volumes段确认本地路径和容器路径的映射正确:
services: scheduler: # 保留原有image、depends_on等配置 environment: # 保留原有其他环境变量,追加上面提到的热重载相关参数 - AIRFLOW__SCHEDULER__DAG_DIR_LIST_INTERVAL=2 - AIRFLOW__SCHEDULER__MIN_FILE_PROCESS_INTERVAL=0 - AIRFLOW__CORE__LOAD_EXAMPLES=False volumes: # 保留原有其他挂载,确保以下路径映射正确 - ./dags:/opt/airflow/dags # 本地DAG目录映射到容器内DAG路径 - ./plugins:/opt/airflow/plugins # 本地插件目录映射到容器内插件路径 # 如果你需要调试Airflow Scheduler本身的源码,再加本地源码的挂载,示例: # ./your-local-airflow-code/scheduler:/usr/local/lib/python3.10/site-packages/airflow/scheduler
3. 生效配置与注意事项
- 配置修改完成后,执行
docker-compose up -d scheduler重启一次scheduler容器即可生效,后续修改DAG、插件代码不需要再重启容器 - 扫描间隔不要设置为0,会导致scheduler持续空转占满CPU资源,开发场景设置1-3秒即可
- 热重载仅对运行时扫描加载的DAG、任务逻辑、自定义插件生效,如果你修改了数据库连接、执行器类型这类启动加载的核心配置,还是需要重启容器才能生效
- 生产环境请将
DAG_DIR_LIST_INTERVAL改回默认值300,避免频繁扫描带来不必要的性能开销
内容的提问来源于stack exchange,提问作者kkpalczewski
相关产品推荐
相关产品推荐

