博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Redis 消息队列 断线重连编码注意事项subscribe
阅读量:5733 次
发布时间:2019-06-18

本文共 912 字,大约阅读时间需要 3 分钟。

hot3.png

应用在Redis重启、网络闪断并恢复正常后,应用必须能够自恢复,下面以Java语言的jedis客户端为例说明:

1、作为发布者

 

Jedis对象不能作为单例,网络闪断后该Jedis对象无法自恢复。应该每次发布消息时,从JedisPool中取Jedis对象,再调用set方法。

2、作为订阅者

     当网络闪断后psubscribe()方法不再阻塞并抛出异常,所以可以使用while循环,在循环内部处理异常,代码如下:

while(true){            Jedis redis = this.jedisPool.getResource();            try{                redis.psubscribe(this, channelArray);            }catch(JedisConnectionException e){                logger.warn("Exception :", e);                logger.warn("Exit redis psubscribe, retry after 1 second");            }catch(Exception e){                logger.error("Exception:", e);            }            try{                Thread.sleep(1000);            }catch(Exception unused){            }            try{                if(redis != null){                    redis.close();                }            }catch(Exception unused){            }        }

转载于:https://my.oschina.net/xiaominmin/blog/2995245

你可能感兴趣的文章
bzoj 2282: [Sdoi2011]消防
查看>>
我的友情链接
查看>>
centos5.9使用RPM包搭建lamp平台
查看>>
关于C#面向对象2
查看>>
Javascript String类的属性及方法
查看>>
vim编辑器如何添加或删除多行注释
查看>>
[LeetCode] Merge Intervals
查看>>
iOS开发-按钮的基本使用
查看>>
在QT和SDL搭建的框架中使用OPENGL在SDL窗口上进行绘图
查看>>
REST技术第三步 @BeanParam的使用
查看>>
SharePoint 读取 Site Columns 的数据并绑定到DropdownList
查看>>
Python中的对象行为与特殊方法(二)类型检查与抽象基类
查看>>
使用 axios 详解
查看>>
通信基站(dfs回溯,思维)
查看>>
nginx web加密访问
查看>>
iOS - Regex 正则表达式
查看>>
第 68 章 Logical Volume Manager (LVM)
查看>>
膝盖中了一箭之康复篇-第八个月暨2月份目标总结
查看>>
IPA提交APPStore问题记录(一)
查看>>
有利于seo优化的网站地图不能取巧
查看>>