redis - 释放绝地池
问题描述
在包括这个Jedis 示例在内的大多数示例中,Jedis 池是在我认为处理它的 try..catch 括号中创建的:
try(Jedis jedis = jedisPool.getResource())
{
some code
}
对我来说这是不可能的,因为我需要在仍然使用 Jedis 池的同时抛出错误,这取决于 Redis 的结果。所以对我来说这只是
Jedis jedis = jedisPool.getResource()
问题是如何最好地处置对象?是 jedis.disconnect 吗?jedis.quit?绝地=空?
解决方案
简直了jedis.close()
。请参阅Jedis - 何时使用 returnBrokenResource()
您曾经被期望使用jedisPool.returnBrokenResource(jedis)
or jedisPool.returnResource(jedis)
,但jedis.close()
会照顾它。
参见Jedis.java。
Jedis jedis = null;
try {
jedis = jedisPool.getResource();
...
}catch (JedisConnectionException e) {
...
}catch (Exception e){
...
} finally {
if (jedis != null)
jedis.close();
}
推荐阅读
- javascript - AudioContext / getChannelData 是确定性的吗?
- python - 用于上传文件的烧瓶蓝图没有获得路由
- c# - 从上午 9:00 开始删除“0”号
- swift - iOS 14+ 中的 Swift Realm 问题
- java - VibrationEffect.DEFAULT_AMPLITUDE 的真正价值是多少
- sql - 创建允许保存整数/浮点数的表变量数据类型 [SQL]
- jmeter - 位置参数未显示在 JMeter 中提取访问令牌的响应标头中
- java - 在执行 docker-compose build 时遇到构建失败问题?
- javascript - FullCalendar 特定事件停止拖动
- vim - vim 8.2 的 unicode 问题