Class DefaultRetryHandler
- java.lang.Object
-
- com.rabbitmq.client.impl.recovery.DefaultRetryHandler
-
- All Implemented Interfaces:
RetryHandler
public class DefaultRetryHandler extends java.lang.Object implements RetryHandler
Composable topology recovery retry handler. This retry handler implementations let the user choose the condition to trigger retry and the retry operation for each type of recoverable entities. The number of attempts and the backoff policy (time to wait between retries) are also configurable.See also
TopologyRecoveryRetryHandlerBuilder
to easily create instances andTopologyRecoveryRetryLogic
for ready-to-use conditions and operations.- Since:
- 5.4.0
- See Also:
TopologyRecoveryRetryHandlerBuilder
,TopologyRecoveryRetryLogic
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
DefaultRetryHandler.RetryOperation<T>
-
Field Summary
Fields Modifier and Type Field Description protected BackoffPolicy
backoffPolicy
protected java.util.function.BiPredicate<? super RecordedBinding,java.lang.Exception>
bindingRecoveryRetryCondition
protected DefaultRetryHandler.RetryOperation<?>
bindingRecoveryRetryOperation
protected java.util.function.BiPredicate<? super RecordedConsumer,java.lang.Exception>
consumerRecoveryRetryCondition
protected DefaultRetryHandler.RetryOperation<?>
consumerRecoveryRetryOperation
protected java.util.function.BiPredicate<? super RecordedExchange,java.lang.Exception>
exchangeRecoveryRetryCondition
protected DefaultRetryHandler.RetryOperation<?>
exchangeRecoveryRetryOperation
private static org.slf4j.Logger
LOGGER
protected java.util.function.BiPredicate<? super RecordedQueue,java.lang.Exception>
queueRecoveryRetryCondition
protected DefaultRetryHandler.RetryOperation<?>
queueRecoveryRetryOperation
protected int
retryAttempts
-
Constructor Summary
Constructors Constructor Description DefaultRetryHandler(java.util.function.BiPredicate<? super RecordedQueue,java.lang.Exception> queueRecoveryRetryCondition, java.util.function.BiPredicate<? super RecordedExchange,java.lang.Exception> exchangeRecoveryRetryCondition, java.util.function.BiPredicate<? super RecordedBinding,java.lang.Exception> bindingRecoveryRetryCondition, java.util.function.BiPredicate<? super RecordedConsumer,java.lang.Exception> consumerRecoveryRetryCondition, DefaultRetryHandler.RetryOperation<?> queueRecoveryRetryOperation, DefaultRetryHandler.RetryOperation<?> exchangeRecoveryRetryOperation, DefaultRetryHandler.RetryOperation<?> bindingRecoveryRetryOperation, DefaultRetryHandler.RetryOperation<?> consumerRecoveryRetryOperation, int retryAttempts, BackoffPolicy backoffPolicy)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected RetryResult
doRetry(java.util.function.BiPredicate<RecordedEntity,java.lang.Exception> condition, DefaultRetryHandler.RetryOperation<?> operation, RecordedEntity entity, RetryContext context)
protected void
log(RecordedEntity entity, java.lang.Exception exception, int attempts)
RetryResult
retryBindingRecovery(RetryContext context)
Retry a failed binding recovery operation.RetryResult
retryConsumerRecovery(RetryContext context)
Retry a failed consumer recovery operation.RetryResult
retryExchangeRecovery(RetryContext context)
Retry a failed exchange recovery operation.RetryResult
retryQueueRecovery(RetryContext context)
Retry a failed queue recovery operation.
-
-
-
Field Detail
-
LOGGER
private static final org.slf4j.Logger LOGGER
-
queueRecoveryRetryCondition
protected final java.util.function.BiPredicate<? super RecordedQueue,java.lang.Exception> queueRecoveryRetryCondition
-
exchangeRecoveryRetryCondition
protected final java.util.function.BiPredicate<? super RecordedExchange,java.lang.Exception> exchangeRecoveryRetryCondition
-
bindingRecoveryRetryCondition
protected final java.util.function.BiPredicate<? super RecordedBinding,java.lang.Exception> bindingRecoveryRetryCondition
-
consumerRecoveryRetryCondition
protected final java.util.function.BiPredicate<? super RecordedConsumer,java.lang.Exception> consumerRecoveryRetryCondition
-
queueRecoveryRetryOperation
protected final DefaultRetryHandler.RetryOperation<?> queueRecoveryRetryOperation
-
exchangeRecoveryRetryOperation
protected final DefaultRetryHandler.RetryOperation<?> exchangeRecoveryRetryOperation
-
bindingRecoveryRetryOperation
protected final DefaultRetryHandler.RetryOperation<?> bindingRecoveryRetryOperation
-
consumerRecoveryRetryOperation
protected final DefaultRetryHandler.RetryOperation<?> consumerRecoveryRetryOperation
-
retryAttempts
protected final int retryAttempts
-
backoffPolicy
protected final BackoffPolicy backoffPolicy
-
-
Constructor Detail
-
DefaultRetryHandler
public DefaultRetryHandler(java.util.function.BiPredicate<? super RecordedQueue,java.lang.Exception> queueRecoveryRetryCondition, java.util.function.BiPredicate<? super RecordedExchange,java.lang.Exception> exchangeRecoveryRetryCondition, java.util.function.BiPredicate<? super RecordedBinding,java.lang.Exception> bindingRecoveryRetryCondition, java.util.function.BiPredicate<? super RecordedConsumer,java.lang.Exception> consumerRecoveryRetryCondition, DefaultRetryHandler.RetryOperation<?> queueRecoveryRetryOperation, DefaultRetryHandler.RetryOperation<?> exchangeRecoveryRetryOperation, DefaultRetryHandler.RetryOperation<?> bindingRecoveryRetryOperation, DefaultRetryHandler.RetryOperation<?> consumerRecoveryRetryOperation, int retryAttempts, BackoffPolicy backoffPolicy)
-
-
Method Detail
-
retryQueueRecovery
public RetryResult retryQueueRecovery(RetryContext context) throws java.lang.Exception
Description copied from interface:RetryHandler
Retry a failed queue recovery operation.- Specified by:
retryQueueRecovery
in interfaceRetryHandler
- Parameters:
context
- the context of the retry- Returns:
- the result of the retry attempt
- Throws:
java.lang.Exception
- if the retry fails
-
retryExchangeRecovery
public RetryResult retryExchangeRecovery(RetryContext context) throws java.lang.Exception
Description copied from interface:RetryHandler
Retry a failed exchange recovery operation.- Specified by:
retryExchangeRecovery
in interfaceRetryHandler
- Parameters:
context
- the context of the retry- Returns:
- the result of the retry attempt
- Throws:
java.lang.Exception
- if the retry fails
-
retryBindingRecovery
public RetryResult retryBindingRecovery(RetryContext context) throws java.lang.Exception
Description copied from interface:RetryHandler
Retry a failed binding recovery operation.- Specified by:
retryBindingRecovery
in interfaceRetryHandler
- Parameters:
context
- the context of the retry- Returns:
- the result of the retry attempt
- Throws:
java.lang.Exception
- if the retry fails
-
retryConsumerRecovery
public RetryResult retryConsumerRecovery(RetryContext context) throws java.lang.Exception
Description copied from interface:RetryHandler
Retry a failed consumer recovery operation.- Specified by:
retryConsumerRecovery
in interfaceRetryHandler
- Parameters:
context
- the context of the retry- Returns:
- the result of the retry attempt
- Throws:
java.lang.Exception
- if the retry fails
-
doRetry
protected RetryResult doRetry(java.util.function.BiPredicate<RecordedEntity,java.lang.Exception> condition, DefaultRetryHandler.RetryOperation<?> operation, RecordedEntity entity, RetryContext context) throws java.lang.Exception
- Throws:
java.lang.Exception
-
log
protected void log(RecordedEntity entity, java.lang.Exception exception, int attempts)
-
-