diff --git a/redisson/src/main/java/org/redisson/client/RedisClient.java b/redisson/src/main/java/org/redisson/client/RedisClient.java index f3fa9707b..c1e37c785 100644 --- a/redisson/src/main/java/org/redisson/client/RedisClient.java +++ b/redisson/src/main/java/org/redisson/client/RedisClient.java @@ -311,13 +311,6 @@ public final class RedisClient { } public RFuture shutdownAsync() { - for (Channel channel : channels) { - RedisConnection connection = RedisConnection.getFrom(channel); - if (connection != null) { - connection.closeAsync(); - } - } - final RPromise result = new RedissonPromise(); ChannelGroupFuture channelsFuture = channels.newCloseFuture(); channelsFuture.addListener(new FutureListener() { @@ -364,6 +357,13 @@ public final class RedisClient { } }); + for (Channel channel : channels) { + RedisConnection connection = RedisConnection.getFrom(channel); + if (connection != null) { + connection.closeAsync(); + } + } + return result; } diff --git a/redisson/src/main/java/org/redisson/client/RedisConnection.java b/redisson/src/main/java/org/redisson/client/RedisConnection.java index 08eb94440..e94c4e270 100644 --- a/redisson/src/main/java/org/redisson/client/RedisConnection.java +++ b/redisson/src/main/java/org/redisson/client/RedisConnection.java @@ -255,11 +255,9 @@ public class RedisConnection implements RedisCommands { if (command != null && command.isBlockingCommand()) { channel.close(); } else { - RFuture f = async(RedisCommands.QUIT); + RFuture f = async(redisClient.getConfig().getCommandTimeout(), RedisCommands.QUIT); f.onComplete((res, e) -> { - if (e != null) { - channel.close(); - } + channel.close(); }); } }