zoukankan      html  css  js  c++  java
  • JedisPool使用注意事项

    转自:http://www.cnblogs.com/wangxin37/p/6397783.html

     

    JedisPool使用注意事项:

    1、每次从pool获取资源后,一定要try-finally释放,否则会出现很多莫名其妙的错误。
    2、资源释放不能一致使用returnBrokenResource【项目问题就出在第二条注意事项上】。

    相关代码

    代码修改前大致如下:

    public void closeResource(Jedis jedis) {  
        if (null != jedis) { 
             jedisPool.returnResource(jedis);  
        }  
    } 

    代码修改后大致如下【isOK正常设为true,捕获到异常如JedisConnectionException时传入false】:

    public void closeResource(Jedis jedis, boolean isOK) {  
        if (null != jedis) {  
            if(!isOK){  
                LOG.error("do some things..");
                jedisPool.returnBrokenResource(jedis);  
            }else{  
                jedisPool.returnResource(jedis);  
            }   
        }  
    }  

    相关源码:

    图片1
    分析源代码,可以知道本来应该执行returnBrokenResourceObject方法,结果却执行了returnResourceObject,并且执行returnResourceObject过程中没有报错。

    具体原因应该就在方法体里面,可惜点进去并没有分析出具体是哪几行代码导致了串号的出现 = =!
    不过当时项目return方面进行了修改后,错误确实没有再出现。

    下面这篇文章也讲解了returnSource的相关注意事项,大家可以参考下
    http://www.codeweblog.com/jedis-returnresource使用注意事项/

    PS:当时项目使用的是Jedis2.7.0,不用通过图片1可以发现Jedis3.0后,returnResource就不使用了,建议用close替换。
    即:jedisPool.returnResource(jedis) ---> jedis.close();

  • 相关阅读:
    python PIL生成图片
    ubuntu ftp安装配置
    PIL 字体居中显示
    python selenium cookie 转换成 request能用的cookie
    selenium给正在运行的火狐浏览器换代理ip
    python selenium 下载滑块验证码
    java 简单工厂 工厂模式
    java 装饰者模式
    java 观察者模式
    全排列
  • 原文地址:https://www.cnblogs.com/lycroseup/p/7300038.html
Copyright © 2011-2022 走看看