从 redis pub/sub 中断开的连接中恢复

2023-12-29

我正在运行连接到 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 程序中完成吗?我应该有一个外部看门狗吗?


不幸的是,我们必须“ping”Redis 来检查它是否可用。如果你尝试给 Redis 存储赋值,它会引发ConnectionError如果连接丢失则异常。但是当连接丢失时,listen() 生成器不会自动关闭。

我认为破解 Redis 的连接池可能会有所帮助,请尝试一下。

附:在不可信的网络环境下连接redis是非常不安全的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 redis pub/sub 中断开的连接中恢复 的相关文章

随机推荐