Fixed - RedisTimeoutException is thrown if retryAttempts set to 0 #1611

pull/2300/head
Nikita Koksharov 6 years ago
parent a52796fb31
commit 7bc7dfe2f2

@ -721,7 +721,7 @@ public class CommandAsyncService implements CommandAsyncExecutor {
details.incAttempt();
Timeout timeout;
if (connectionManager.getConfig().getRetryInterval() > 0) {
if (connectionManager.getConfig().getRetryInterval() > 0 && connectionManager.getConfig().getRetryAttempts() > 0) {
timeout = connectionManager.newTimeout(this, connectionManager.getConfig().getRetryInterval(), TimeUnit.MILLISECONDS);
} else {
timeout = MasterSlaveConnectionManager.DUMMY_TIMEOUT;
@ -770,7 +770,7 @@ public class CommandAsyncService implements CommandAsyncExecutor {
};
Timeout timeout;
if (connectionManager.getConfig().getRetryInterval() > 0) {
if (connectionManager.getConfig().getRetryInterval() > 0 && connectionManager.getConfig().getRetryAttempts() > 0) {
timeout = connectionManager.newTimeout(retryTimerTask, connectionManager.getConfig().getRetryInterval(), TimeUnit.MILLISECONDS);
} else {
timeout = MasterSlaveConnectionManager.DUMMY_TIMEOUT;

@ -688,7 +688,7 @@ public class CommandBatchService extends CommandAsyncService {
details.incAttempt();
Timeout timeout;
if (interval > 0) {
if (interval > 0 && attempts > 0) {
timeout = connectionManager.newTimeout(this, interval, TimeUnit.MILLISECONDS);
} else {
timeout = MasterSlaveConnectionManager.DUMMY_TIMEOUT;
@ -728,7 +728,12 @@ public class CommandBatchService extends CommandAsyncService {
}
};
Timeout timeout = connectionManager.newTimeout(retryTimerTask, interval, TimeUnit.MILLISECONDS);
Timeout timeout;
if (interval > 0 && attempts > 0) {
timeout = connectionManager.newTimeout(retryTimerTask, interval, TimeUnit.MILLISECONDS);
} else {
timeout = MasterSlaveConnectionManager.DUMMY_TIMEOUT;
}
details.setTimeout(timeout);
mainPromise.onComplete(mainPromiseListener);

@ -103,7 +103,7 @@ public class SentinelConnectionManager extends MasterSlaveConnectionManager {
for (String address : cfg.getSentinelAddresses()) {
RedisURI addr = new RedisURI(address);
RedisClient client = createClient(NodeType.SENTINEL, addr, this.config.getConnectTimeout(), this.config.getRetryInterval() * this.config.getRetryAttempts(), null);
RedisClient client = createClient(NodeType.SENTINEL, addr, this.config.getConnectTimeout(), this.config.getTimeout(), null);
try {
RedisConnection c = client.connect();
try {
@ -125,7 +125,7 @@ public class SentinelConnectionManager extends MasterSlaveConnectionManager {
sentinelHosts.add(addr);
}
RedisClient client = createClient(NodeType.SENTINEL, addr, this.config.getConnectTimeout(), this.config.getRetryInterval() * this.config.getRetryAttempts(), null);
RedisClient client = createClient(NodeType.SENTINEL, addr, this.config.getConnectTimeout(), this.config.getTimeout(), null);
try {
RedisConnection connection = client.connect();
if (!connection.isActive()) {
@ -505,7 +505,7 @@ public class SentinelConnectionManager extends MasterSlaveConnectionManager {
return RedissonPromise.newSucceededFuture(null);
}
RedisClient client = createClient(NodeType.SENTINEL, addr, c.getConnectTimeout(), c.getRetryInterval() * c.getRetryAttempts(), null);
RedisClient client = createClient(NodeType.SENTINEL, addr, c.getConnectTimeout(), c.getTimeout(), null);
RPromise<Void> result = new RedissonPromise<Void>();
RFuture<InetSocketAddress> future = client.resolveAddr();
future.onComplete((res, e) -> {

Loading…
Cancel
Save