Python 芹菜中不同队列使用不同的Redis数据库
我有一个Django应用程序,它使用芹菜和Redis代理来执行异步任务。目前,该应用程序有3个队列(&3个工作者),它们连接到一个Redis实例进行通信。这里,前两个工人是基于工作前的工人,第三个是基于事件的工人 有关代理和后端的芹菜设置变量如下所示:Python 芹菜中不同队列使用不同的Redis数据库,python,django,redis,celery,worker,Python,Django,Redis,Celery,Worker,我有一个Django应用程序,它使用芹菜和Redis代理来执行异步任务。目前,该应用程序有3个队列(&3个工作者),它们连接到一个Redis实例进行通信。这里,前两个工人是基于工作前的工人,第三个是基于事件的工人 有关代理和后端的芹菜设置变量如下所示: CELERY_BROKER_URL="redis://localhost:6379/0" CELERY_RESULT_BACKEND="redis://localhost:6379/1" 由于芹菜用于实现
CELERY_BROKER_URL="redis://localhost:6379/0"
CELERY_RESULT_BACKEND="redis://localhost:6379/1"
由于芹菜用于实现FIFO队列,我想知道对于不同的队列使用不同的Redis数据库是否正确甚至可能,比如-q1使用数据库../1
和q2使用数据库../2
进行消息传递?这样,每个工作人员将只监听专用数据库,并从队列中以较少竞争的方式拾取任务
- 这有什么意义吗
- 如果是这样的话,你如何在芹菜中实现这样的东西
据我所知,Redis broker无法使用不同的DBs。您可以使用不同的DBs创建不同的芹菜应用程序,但不能设置任务之间的依赖关系(画布:组、链等)。我不推荐这样的选择。为什么选择Redis而不是RabbitMQ作为代理?它应该处理的负载是什么?主要是简单性。芹菜Redis配置对我来说似乎非常简单,我只是选择了它。