如何在Heroku中监控Celery日志?部署Flower遇错误求助
解决Heroku部署Flower监控Celery时应用崩溃的问题
错误原因
你遇到的AttributeError: module 'collections' has no attribute 'MutableMapping'是Python版本与Tornado依赖版本不兼容导致的:
- Python 3.10及以后版本,
collections.MutableMapping被迁移到collections.abc模块下 - 你部署的Flower依赖的Tornado版本过旧,不支持Heroku默认使用的Python 3.11(日志里的
python3.11可佐证)
解决方法
方法1:指定兼容的Python版本(推荐)
在Flower部署仓库的根目录新建一个名为runtime.txt的文件,写入以下内容:
python-3.9.17
提交这个文件到仓库后重新部署,Heroku会自动使用Python 3.9版本,该版本与旧版Tornado兼容。
方法2:更新Tornado依赖版本
如果仓库里有requirements.txt文件,打开它添加或修改Tornado的版本为支持Python 3.11的版本:
tornado>=6.2.0
保存后提交仓库,重新部署到Heroku即可。
方法3:核对启动命令
检查仓库中的Procfile文件,确保启动命令正确配置了端口和你的Celery broker地址:
web: flower --port=$PORT --broker=你的Celery消息队列地址
替换你的Celery消息队列地址为你实际使用的Redis或RabbitMQ地址,再重新部署。
内容的提问来源于stack exchange,提问作者Boosted_d16
相关产品推荐
相关产品推荐

