从Redis的发布/订阅丢弃的连接恢复(Recover from dropped connectio

2019-08-03 09:56发布

我正在被连接到一个Redis的数据库客户端。 客户端是一个WiFi连接上,将下降,有时连接。 不幸的是,当这种情况发生时,程序只是保持不抛出任何类型的警告的运行。

r = redis.StrictRedis(host=XX, password=YY...)
ps = r.pubsub()
ps.subscribe("12345")
for items in ps.listen():
    if items['type'] == 'message':
       data = items['data']

理想情况下,我所寻求的是一个包罗万象的事件时,连接丢失,尝试重新建立连接,做一些纠错,然后把事情备份和运行。 如果这在Python程序做什么? 如果我有一个外部看门狗?

Answer 1:

不幸的是,一个以“平”的Redis来检查它是否可用。 如果你试图将一个值Redis的存储,它会引发ConnectionError如果连接丢失例外。 但是,当连接丢失的听()生成器不会自动关闭。

我认为,黑客Redis的连接池可以帮助,不妨一试。

PS在非常不安全的连接不受信任的网络环境中的Redis。



文章来源: Recover from dropped connection in redis pub/sub