diff --git a/redisson/src/main/java/org/redisson/command/RedisQueuedBatchExecutor.java b/redisson/src/main/java/org/redisson/command/RedisQueuedBatchExecutor.java index b84adc027..7cc76c81e 100644 --- a/redisson/src/main/java/org/redisson/command/RedisQueuedBatchExecutor.java +++ b/redisson/src/main/java/org/redisson/command/RedisQueuedBatchExecutor.java @@ -98,6 +98,11 @@ public class RedisQueuedBatchExecutor extends BaseRedisBatchExecutor protected void releaseConnection(CompletableFuture attemptPromise, CompletableFuture connectionFuture) { if (RedisCommands.EXEC.getName().equals(command.getName()) || RedisCommands.DISCARD.getName().equals(command.getName())) { + if (attempt < attempts + && attemptPromise.isCompletedExceptionally()) { + return; + } + super.releaseConnection(attemptPromise, connectionFuture); } }