Skip to content

Commit 64ae52d

Browse files
committed
Limit connection affinity retry to 5 attempts
1 parent 90374f2 commit 64ae52d

File tree

2 files changed

+18
-2
lines changed

2 files changed

+18
-2
lines changed

src/main/java/com/rabbitmq/client/amqp/impl/AmqpConnection.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -433,7 +433,8 @@ public <T> T maybeRetry(Supplier<T> task) {
433433
return RetryUtils.callAndMaybeRetry(
434434
task::get,
435435
e -> true,
436-
BackOffDelayPolicy.fixed(Duration.ofMillis(10)),
436+
Duration.ofMillis(10),
437+
5,
437438
"Connection affinity operation");
438439
}
439440
},

src/main/java/com/rabbitmq/client/amqp/impl/RetryUtils.java

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,21 @@ static <T> T callAndMaybeRetry(
4848
args);
4949
}
5050

51+
static <T> T callAndMaybeRetry(
52+
Callable<T> operation,
53+
Predicate<Exception> retryCondition,
54+
Duration waitTime,
55+
int attempts,
56+
String format,
57+
Object... args) {
58+
return callAndMaybeRetry(
59+
operation,
60+
retryCondition,
61+
i -> i > attempts ? BackOffDelayPolicy.TIMEOUT : waitTime,
62+
format,
63+
args);
64+
}
65+
5166
static <T> T callAndMaybeRetry(
5267
Callable<T> operation,
5368
Predicate<Exception> retryCondition,
@@ -82,7 +97,7 @@ static <T> T callAndMaybeRetry(
8297
try {
8398
Thread.sleep(delay.toMillis());
8499
} catch (InterruptedException ex) {
85-
Thread.interrupted();
100+
Thread.currentThread().interrupt();
86101
lastException = ex;
87102
keepTrying = false;
88103
}

0 commit comments

Comments
 (0)