python rq消息队列实现哨兵连接

rq是python中基于redis的消息队列,1.0版本只支持redis的単连接方式,即:


但是这种连接方式是不安全的,不能满足生产环境对于安全性能的要求,因此需要使用sentinel连接redis。

官方文档上也给出了如何使用sentinel连接rq,如下所示:


但是说法不够明确,只是说需要配置文件中加一个名为SENTINEL的字典,但是未说明在哪里配置,网上也没有相关的资料,

rq的github中selwin关于sentinel如何使用的提问,他都让提问者去看#808的回答,因为selwin合并这个Issue提供的代码,实现了对sentinel的支持,更改代码如下:


因此,rq是肯定可以支持sentinel的,但是作者依旧没有给出明确的使用方式(作者很懒或者认为这个很简单)。

至于如何在配置文件中配置SENTINEL字典,我在看了n多资料之后,依旧没有头绪,因为修改系统的配置文件,并不能传递到rq中去。

所以我花了两个小时,看了rq中sentinel相关的代码(主要是cli文件下的),发现有一个函数get_redis_from_config,该函数的参数和介绍如下:


因此,确定可以使用该函数传递SENTINEL。

连接代码如下:

经测试,可实现rq的哨兵连接。

你可能感兴趣的:(python rq消息队列实现哨兵连接)