Package org.springframework.retry
Interface RetryListener
- All Known Implementing Classes:
MethodInvocationRetryListenerSupport
,RetryListenerSupport
,StatisticsListener
public interface RetryListener
Interface for listener that can be used to add behaviour to a retry. Implementations of
RetryOperations
can chose to issue callbacks to an interceptor during the retry
lifecycle.- Author:
- Dave Syer, Gary Russell, Henning Pƶttker
-
Method Summary
Modifier and TypeMethodDescriptiondefault <T,
E extends Throwable>
voidclose
(RetryContext context, RetryCallback<T, E> callback, Throwable throwable) Called after the final attempt (successful or not).default <T,
E extends Throwable>
voidonError
(RetryContext context, RetryCallback<T, E> callback, Throwable throwable) Called after every unsuccessful attempt at a retry.default <T,
E extends Throwable>
voidonSuccess
(RetryContext context, RetryCallback<T, E> callback, T result) Called after a successful attempt; allow the listener to throw a new exception to cause a retry (according to the retry policy), based on the result returned by theRetryCallback.doWithRetry(RetryContext)
default <T,
E extends Throwable>
booleanopen
(RetryContext context, RetryCallback<T, E> callback) Called before the first attempt in a retry.
-
Method Details
-
open
Called before the first attempt in a retry. For instance, implementers can set up state that is needed by the policies in theRetryOperations
. The whole retry can be vetoed by returning false from this method, in which case aTerminatedRetryException
will be thrown.- Type Parameters:
T
- the type of object returned by the callbackE
- the type of exception it declares may be thrown- Parameters:
context
- the currentRetryContext
.callback
- the currentRetryCallback
.- Returns:
- true if the retry should proceed.
-
close
default <T,E extends Throwable> void close(RetryContext context, RetryCallback<T, E> callback, Throwable throwable) Called after the final attempt (successful or not). Allow the listener to clean up any resource it is holding before control returns to the retry caller.- Type Parameters:
E
- the exception typeT
- the return value- Parameters:
context
- the currentRetryContext
.callback
- the currentRetryCallback
.throwable
- the last exception that was thrown by the callback.
-
onSuccess
default <T,E extends Throwable> void onSuccess(RetryContext context, RetryCallback<T, E> callback, T result) Called after a successful attempt; allow the listener to throw a new exception to cause a retry (according to the retry policy), based on the result returned by theRetryCallback.doWithRetry(RetryContext)
- Type Parameters:
T
- the return type.- Parameters:
context
- the currentRetryContext
.callback
- the currentRetryCallback
.result
- the result returned by the callback method.- Since:
- 2.0
-
onError
default <T,E extends Throwable> void onError(RetryContext context, RetryCallback<T, E> callback, Throwable throwable) Called after every unsuccessful attempt at a retry.- Type Parameters:
T
- the return valueE
- the exception to throw- Parameters:
context
- the currentRetryContext
.callback
- the currentRetryCallback
.throwable
- the last exception that was thrown by the callback.
-