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

启动Celery Worker时触发ModuleNotFoundError,错误涉及Broker的DNS前缀

启动Celery Worker时触发ModuleNotFoundError,错误涉及Broker的DNS前缀

看起来你遇到的问题是Celery把Broker的DNS地址前缀当成了要导入的Python模块名,这完全是因为你的Broker/Backend URL格式不正确导致的。

问题根源

Celery在解析Broker和Backend地址时,会把URL开头的协议标识(比如redis://)识别为要使用的传输模块。如果你的地址没加正确的协议前缀,Celery就会误把DNS的第一段(也就是你案例里的a-redis-server)当成模块名去查找,自然就抛出ModuleNotFoundError了。

解决步骤

你只需要给Redis地址加上正确的协议前缀就能解决:

  • 普通Redis连接,在地址前加redis://:
    # 配置示例
    broker_url = "redis://a-redis-server.abcdef.0001.use1.cache.amazonaws.com:6379/0"
    result_backend = "redis://a-redis-server.abcdef.0001.use1.cache.amazonaws.com:6379/0"
    
  • 如果是SSL加密的Redis连接,用rediss://作为前缀:
    broker_url = "rediss://a-redis-server.abcdef.0001.use1.cache.amazonaws.com:6379/0"
    result_backend = "rediss://a-redis-server.abcdef.0001.use1.cache.amazonaws.com:6379/0"
    
  • 要是Redis需要用户名密码认证,把认证信息嵌入URL即可:
    broker_url = "redis://your_username:your_password@a-redis-server.abcdef.0001.use1.cache.amazonaws.com:6379/0"
    

修改完配置后重启Celery Worker,这个错误应该就会消失了。

备注:内容来源于stack exchange,提问作者p5k6

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.13 17:55:28