码迷,mamicode.com
首页 > 其他好文 > 详细

jedis异常:NoSuchElementException: Timeout waiting for idle object

时间:2014-07-11 08:32:05      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:jedis timeout

项目线上环境发现:java.util.NoSuchElementException: Timeout waiting for idle object

问题原因:不应该在try中释放资源,而应该在finally中处理。虽然是非常基础的语法,但还是有可能会写错,维护老系统时发现很几处都存在这种潜在的Bug,引以为戒。在try中释放资源,每当出现一次异常将会导致一个jedis对象无法释放,pool池中可用的jedis对象资源会越来越少,最终将会导致java.util.NoSuchElementException: Timeout waiting for idle object。这种问题是一个慢性问题,需要时间积累才会发作。
由于请求无法获取空闲对象,页面会出现服务端500错误。若代码加入循环获取jedis将还可能出现服务器宕机。

try {
jedis = pool.getResource();
// xxx 业务代码
// 原来代码:pool.returnResource(jedis);,应该放在finally块中,否则每次发生异常将导致一个jedis对象没有被t
} catch (RuntimeException e) { 
         if(jedis != null ) {
                 pool.returnBrokenResource(jedis);
}
} finally{ 
        // 正确释放资源
         if(jedis != null ) {
                pool.returnResource(jedis);
         }
}

jedis异常:NoSuchElementException: Timeout waiting for idle object,布布扣,bubuko.com

jedis异常:NoSuchElementException: Timeout waiting for idle object

标签:jedis timeout

原文地址:http://blog.csdn.net/bbirdsky/article/details/37602673

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!