Skip to content

Commit da00189

Browse files
committed
feat: optimize RedisProxyJedisPool (#459)
1 parent e6699ac commit da00189

2 files changed

Lines changed: 19 additions & 5 deletions

File tree

  • camellia-redis-proxy/camellia-redis-proxy-extensions/camellia-redis-proxy-discovery
    • camellia-redis-proxy-discovery-jedis2/src/main/java/com/netease/nim/camellia/redis/proxy/discovery/jedis
    • camellia-redis-proxy-discovery-jedis3/src/main/java/com/netease/nim/camellia/redis/proxy/discovery/jedis

camellia-redis-proxy/camellia-redis-proxy-extensions/camellia-redis-proxy-discovery/camellia-redis-proxy-discovery-jedis2/src/main/java/com/netease/nim/camellia/redis/proxy/discovery/jedis/RedisProxyJedisPool.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -577,7 +577,13 @@ private void remove(Proxy proxy) {
577577
if (removed) {
578578
JedisPool remove = jedisPoolMap.remove(proxy);
579579
if (remove != null) {
580-
remove.close();
580+
scheduledExecutorService.schedule(() -> {
581+
try {
582+
remove.close();
583+
} catch (Exception e) {
584+
logger.error("close jedis pool error, proxy = {}", proxy, e);
585+
}
586+
}, 10, TimeUnit.SECONDS);
581587
}
582588
}
583589
} catch (Exception e) {

camellia-redis-proxy/camellia-redis-proxy-extensions/camellia-redis-proxy-discovery/camellia-redis-proxy-discovery-jedis3/src/main/java/com/netease/nim/camellia/redis/proxy/discovery/jedis/RedisProxyJedisPool.java

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -573,10 +573,18 @@ private void remove(Proxy proxy) {
573573
if (proxy == null) return;
574574
synchronized (lock) {
575575
try {
576-
proxySelector.remove(proxy);
577-
JedisPool remove = jedisPoolMap.remove(proxy);
578-
if (remove != null) {
579-
remove.close();
576+
boolean removed = proxySelector.remove(proxy);
577+
if (removed) {
578+
JedisPool remove = jedisPoolMap.remove(proxy);
579+
if (remove != null) {
580+
scheduledExecutorService.schedule(() -> {
581+
try {
582+
remove.close();
583+
} catch (Exception e) {
584+
logger.error("close jedis pool error, proxy = {}", proxy, e);
585+
}
586+
}, 10, TimeUnit.SECONDS);
587+
}
580588
}
581589
} catch (Exception e) {
582590
logger.error("remove proxy error, proxy = {}", proxy, e);

0 commit comments

Comments
 (0)