首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >芹菜中不同队列使用不同的Redis数据库

芹菜中不同队列使用不同的Redis数据库
EN

Stack Overflow用户
提问于 2021-01-08 14:11:30
回答 1查看 1K关注 0票数 1

我有一个Django应用程序,它使用CeleryRedis broker进行异步任务执行。目前,该应用程序的3队列 (& 3个工作人员)连接到单个Redis实例进行通信。在这里,前两个工作人员是基于预叉的工作人员,第三个是工作人员。

与代理和后端有关的芹菜设置变量如下所示:

代码语言:javascript
复制
CELERY_BROKER_URL="redis://localhost:6379/0"
CELERY_RESULT_BACKEND="redis://localhost:6379/1"

由于芹菜使用鲁普-布拉普实现FIFO队列,我想知道对于不同的队列使用不同的Redis数据库是否正确,甚至是否可能-- q1使用数据库.../1,q2使用数据库.../2进行消息传递?通过这种方式,每个工作人员只会监听专用的数据库,并在竞争较少的情况下从队列中获取任务。

  • 这有什么意义吗?
  • 如果是这样的话,你如何在芹菜中实现这样的东西呢?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-09 18:32:04

首先,如果您担心负载,请指定您的预期数字/费率。

在我看来,您不应该担心Redis处理负载的能力。

  1. 只要你需要,Redis就有它自己的扩展/扩展功能。
  2. 您可以使用RabbitMQ作为代理(使用rabbitMQ码头也很简单,您可以看到示例),它有自己的扩展功能来支持高负载,所以我认为您不应该担心这一点。

据我所知,没有办法为Redis broker使用不同的DB。您可以使用不同的DB创建不同的芹菜应用程序,但是不能在任务之间设置依赖关系(画布:分组、链等)。我不推荐这样的选择。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65630575

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档