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

新版Celery与Django能否仅用数据库存储消息和运行结果?

新版Celery与Django仅用数据库存储消息及结果的可行性

消息队列(Broker)部分

新版Celery(5.x及以上版本)已经彻底移除了旧版3.1里基于Django ORM的Broker支持,官方明确不推荐用数据库作为消息队列的载体。目前官方只认可RabbitMQ、Redis这类专门的消息中间件作为Broker,如果非要在新版里用数据库当Broker,只能自行寻找第三方非官方插件或者做自定义实现,但这类方案的稳定性、性能都没有保障,不建议在生产环境使用。

结果存储(Backend)部分

这部分是完全可行的,Celery原生支持将Django ORM作为结果存储后端,不需要依赖SQLAlchemy。配置步骤很简单:

  1. 在Django项目的settings.py里添加配置:
CELERY_RESULT_BACKEND = 'django-db'
  1. 安装对应的依赖包(如果没装的话):
pip install django-celery-results
  1. 在INSTALLED_APPS里加入django_celery_results,然后执行迁移生成结果存储表:
python manage.py migrate django_celery_results

不过要注意,用数据库存任务结果的性能不如Redis这类内存存储,更适合小流量场景或者测试环境。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 00:45:49