【问题标题】:Redis-Queue (RQ) Task Queues in Production生产中的 Redis-Queue (RQ) 任务队列
【发布时间】:2018-12-20 07:41:14
【问题描述】:
我最近开始在我的 Django 程序中需要一个任务队列,我担心它在未来会变得多么强大,或者生产部署需要克服哪些问题。
我正在使用 Python 的 Redis-Queue 或 RQ 库,它比 Celery(我还没有完全学会)之类的东西更容易学习和使用。有人对此有任何意见吗?你认为 RQ 与 Redis 结合在生产环境中是否可行,或者你会使用其他东西吗?大型应用程序使用什么来进行任务排队?
【问题讨论】:
标签:
python
django
redis
task
production-environment
【解决方案1】:
据我所知,Celery 在生产环境中工作,对于 Python/Django,最成熟的基于分布式消息传递的同步任务队列/作业队列的实现,使用 Redis 作为代理就可以了。
您在生产中需要的不仅仅是发送一条简单的消息,而是一个高级 API:
- 缩放、自动缩放。
- 实时监控。
- 任务调度程序。
- 优先级。
- 多代理支持。
- 基于工作流的任务。
Celery 已经准备好了。
【解决方案2】:
是的,redis 和 redis-queue 很容易设置。是的,它们可以在生产系统中使用。你也可以看看 RabbitMQ。它可以用作任务队列。它支持用于扩展的持久性和集群。