From 4b88e8ab2b2322986885b0509fbd793f26a0b735 Mon Sep 17 00:00:00 2001 From: Nikita Date: Thu, 30 Jul 2015 15:48:31 +0300 Subject: [PATCH] HashedWheelTimer while interval calculation fixed. #198 --- .../MasterSlaveConnectionManager.java | 17 ++++++++++++++++- .../connection/SingleConnectionManager.java | 5 +---- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/redisson/connection/MasterSlaveConnectionManager.java b/src/main/java/org/redisson/connection/MasterSlaveConnectionManager.java index c8744c8c6..811b8709a 100644 --- a/src/main/java/org/redisson/connection/MasterSlaveConnectionManager.java +++ b/src/main/java/org/redisson/connection/MasterSlaveConnectionManager.java @@ -59,7 +59,7 @@ public class MasterSlaveConnectionManager implements ConnectionManager { private final Logger log = LoggerFactory.getLogger(getClass()); - private final HashedWheelTimer timer = new HashedWheelTimer(); + private HashedWheelTimer timer; protected Codec codec; @@ -111,10 +111,25 @@ public class MasterSlaveConnectionManager implements ConnectionManager { protected void init(MasterSlaveServersConfig config) { this.config = config; + int minTimeout = Math.min(config.getRetryInterval(), config.getTimeout()); + if (minTimeout % 100 != 0) { + timer = new HashedWheelTimer(minTimeout % 100, TimeUnit.MILLISECONDS); + } else { + timer = new HashedWheelTimer(100, TimeUnit.MILLISECONDS); + } + + initEntry(config); + } + + protected void initEntry(MasterSlaveServersConfig config) { MasterSlaveEntry entry = new MasterSlaveEntry(codec, this, config); entries.put(Integer.MAX_VALUE, entry); } + public static void main(String[] args) { + System.out.println(1210 % 100); + } + protected void init(Config cfg) { if (cfg.isUseLinuxNativeEpoll()) { this.group = new EpollEventLoopGroup(cfg.getThreads()); diff --git a/src/main/java/org/redisson/connection/SingleConnectionManager.java b/src/main/java/org/redisson/connection/SingleConnectionManager.java index d57c9a840..0f3f5373d 100644 --- a/src/main/java/org/redisson/connection/SingleConnectionManager.java +++ b/src/main/java/org/redisson/connection/SingleConnectionManager.java @@ -39,12 +39,9 @@ public class SingleConnectionManager extends MasterSlaveConnectionManager { } @Override - protected void init(MasterSlaveServersConfig config) { - this.config = config; - + protected void initEntry(MasterSlaveServersConfig config) { SingleEntry entry = new SingleEntry(codec, this, config); entries.put(Integer.MAX_VALUE, entry); } - }