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

如何将Celery的AMQP后端升级为RPC后端,适配Celery 5版本?

错误原因说明

  1. ModuleNotFoundError: No module named 'celery.backends.amqp' 报错是因为Celery 5版本正式移除了amqp结果后端,官方指定的替代方案为rpc结果后端,原有的amqp后端相关配置已经失效。
  2. 后续出现KeyError: 'No such transport: rpc'的核心原因是配置修改逻辑错误:RPC协议仅可用于结果后端配置,RabbitMQ作为Broker仍然需要使用amqp协议,将CELERY_BROKER_URL改为rpc://开头属于配置错误。

正确配置方案
  • 保留原有Broker配置不变,无需修改CELERY_BROKER_URL:
    CELERY_BROKER_URL = 'amqp://guest:guest@127.0.0.1:5672/myvhost'
    
  • 修改结果后端配置为RPC协议(RPC后端会复用Broker的连接配置,无需重复填写地址、认证、vhost等参数):
    CELERY_RESULT_BACKEND = 'rpc://'
    
  • 可根据业务需要补充RPC后端相关配置:
    • 开启结果持久化(RabbitMQ重启后任务结果不会丢失):CELERY_RESULT_PERSISTENT = True
    • 设置任务结果过期时间(单位为秒,避免结果长期堆积占用Broker存储):CELERY_TASK_RESULT_EXPIRES = 1800

配置修改完成后删除原有amqp后端相关的废弃配置,重启Celery Worker和调用端即可正常运行。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 08:36:06