Airflow 2.7.0及以上版本如何配置Celery的broker_url?
Airflow 2.7.0+ 配置Celery broker_url的正确步骤
自Airflow 2.7.0起,Celery相关配置从核心包迁移至celery provider包,无法再直接在airflow.cfg的[celery]章节设置broker_url,以下是通过配置文件设置的完整步骤:
1. 确认Celery Provider版本
确保安装的apache-airflow-providers-celery版本适配Airflow 2.7.0+(最低要求3.3.0版本),可通过命令验证:
pip show apache-airflow-providers-celery
2. 配置airflow.cfg指定Celery配置文件
在airflow.cfg的[celery]区块中添加以下配置,指定你的celeryconfig.py的绝对路径:
[celery] celery_config_options = {"config_source": "/full/path/to/your/celeryconfig.py"}
如果你的celeryconfig.py已经在Python的sys.path中(比如放在Airflow的DAGS_FOLDER下,或者Python的site-packages目录),也可以直接指定模块名:
celery_config_options = {"config_source": "celeryconfig"}
3. 确保celeryconfig.py配置正确且可访问
你的celeryconfig.py内容保持不变即可:
broker_url = 'redis://127.0.0.1:6379/0'
同时需保证Airflow相关进程(webserver、scheduler、celery worker)拥有该文件的读取权限。
4. 重启所有Airflow服务
配置变更需重启服务才能生效:
# 重启webserver airflow webserver restart # 重启scheduler airflow scheduler restart # 重启celery worker airflow celery worker restart
关键注意事项
- 若之前设置了
CELERY_BROKER_URL环境变量,需移除该环境变量——环境变量的优先级高于配置文件,会覆盖celeryconfig.py中的设置。 - 若使用自定义Python环境,需确保
celeryconfig.py所在路径被该环境的sys.path包含。
内容的提问来源于stack exchange,提问作者Daniel Fridman
相关产品推荐
相关产品推荐

