From 052e459bbf4c39a55bc3b2f8db8f02389d02a544 Mon Sep 17 00:00:00 2001 From: Nikita Date: Tue, 1 Sep 2015 20:09:23 +0300 Subject: [PATCH] Empty sentinel list handling. #226, #227 --- .../connection/SentinelConnectionManager.java | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/main/java/org/redisson/connection/SentinelConnectionManager.java b/src/main/java/org/redisson/connection/SentinelConnectionManager.java index c05fb0b27..50e19aa44 100644 --- a/src/main/java/org/redisson/connection/SentinelConnectionManager.java +++ b/src/main/java/org/redisson/connection/SentinelConnectionManager.java @@ -78,9 +78,12 @@ public class SentinelConnectionManager extends MasterSlaveConnectionManager { currentMaster.set(masterHost); log.info("master: {} added", masterHost); - // TODO async List> sentinelSlaves = connection.sync(RedisCommands.SENTINEL_SLAVES, cfg.getMasterName()); for (Map map : sentinelSlaves) { + if (map.isEmpty()) { + continue; + } + String ip = map.get("ip"); String port = map.get("port"); String flags = map.get("flags"); @@ -114,12 +117,12 @@ public class SentinelConnectionManager extends MasterSlaveConnectionManager { } for (URI addr : cfg.getSentinelAddresses()) { - registerSentinel(cfg, addr); + registerSentinel(cfg, addr, c); } } - private void registerSentinel(final SentinelServersConfig cfg, final URI addr) { - RedisClient client = createClient(addr.getHost(), addr.getPort()); + private void registerSentinel(final SentinelServersConfig cfg, final URI addr, final MasterSlaveServersConfig c) { + RedisClient client = createClient(addr.getHost(), addr.getPort(), c.getTimeout()); RedisClient oldClient = sentinels.putIfAbsent(addr.getHost() + ":" + addr.getPort(), client); if (oldClient != null) { return; @@ -132,7 +135,7 @@ public class SentinelConnectionManager extends MasterSlaveConnectionManager { @Override public void onMessage(String channel, String msg) { if ("+sentinel".equals(channel)) { - onSentinelAdded(cfg, msg); + onSentinelAdded(cfg, msg, c); } if ("+slave".equals(channel)) { onSlaveAdded(addr, msg); @@ -164,7 +167,7 @@ public class SentinelConnectionManager extends MasterSlaveConnectionManager { } } - protected void onSentinelAdded(SentinelServersConfig cfg, String msg) { + protected void onSentinelAdded(SentinelServersConfig cfg, String msg, MasterSlaveServersConfig c) { String[] parts = msg.split(" "); if ("sentinel".equals(parts[0])) { String ip = parts[2]; @@ -172,7 +175,7 @@ public class SentinelConnectionManager extends MasterSlaveConnectionManager { String addr = ip + ":" + port; URI uri = URIBuilder.create(addr); - registerSentinel(cfg, uri); + registerSentinel(cfg, uri, c); } }