Class BatchRetryTemplate
java.lang.Object
org.springframework.batch.core.step.item.BatchRetryTemplate
- All Implemented Interfaces:
org.springframework.retry.RetryOperations
A special purpose retry template that deals specifically with multi-valued stateful
retry. This is useful in the case where the operation to be retried operates on
multiple items, and when it fails there is no way to decide which (if any) of the items
was responsible. The
RetryState
used in the execute methods is composite, and
when a failure occurs, all of the keys in the composite are "tarred with the same
brush". Subsequent attempts to execute with any of the keys that have failed previously
results in a new attempt and the previous state is used to check the
RetryPolicy
. If one of the failed items eventually succeeds then the others in
the current composite for that attempt will be cleared from the context cache (as
normal), but there may still be entries in the cache for the original failed items.
This might mean that an item that did not cause a failure is never retried because
other items in the same batch fail fatally first.- Author:
- Dave Syer, Mahmoud Ben Hassine
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionboolean
canRetry
(org.springframework.retry.RetryContext context) static List<org.springframework.retry.RetryState>
createState
(List<?> keys) static List<org.springframework.retry.RetryState>
createState
(List<?> keys, org.springframework.classify.Classifier<? super Throwable, Boolean> classifier) final <T,
E extends Throwable>
Texecute
(org.springframework.retry.RetryCallback<T, E> retryCallback) <T,
E extends Throwable>
Texecute
(org.springframework.retry.RetryCallback<T, E> retryCallback, Collection<org.springframework.retry.RetryState> states) final <T,
E extends Throwable>
Texecute
(org.springframework.retry.RetryCallback<T, E> retryCallback, org.springframework.retry.RecoveryCallback<T> recoveryCallback) <T,
E extends Throwable>
Texecute
(org.springframework.retry.RetryCallback<T, E> retryCallback, org.springframework.retry.RecoveryCallback<T> recoveryCallback, Collection<org.springframework.retry.RetryState> states) final <T,
E extends Throwable>
Texecute
(org.springframework.retry.RetryCallback<T, E> retryCallback, org.springframework.retry.RecoveryCallback<T> recoveryCallback, org.springframework.retry.RetryState retryState) final <T,
E extends Throwable>
Texecute
(org.springframework.retry.RetryCallback<T, E> retryCallback, org.springframework.retry.RetryState retryState) void
registerListener
(org.springframework.retry.RetryListener listener) void
setBackOffPolicy
(org.springframework.retry.backoff.BackOffPolicy backOffPolicy) void
setListeners
(org.springframework.retry.RetryListener[] listeners) void
setRetryContextCache
(org.springframework.retry.policy.RetryContextCache retryContextCache) void
setRetryPolicy
(org.springframework.retry.RetryPolicy retryPolicy)
-
Constructor Details
-
BatchRetryTemplate
public BatchRetryTemplate()
-
-
Method Details
-
execute
public <T,E extends Throwable> T execute(org.springframework.retry.RetryCallback<T, E> retryCallback, Collection<org.springframework.retry.RetryState> states) throws E, Exception -
execute
public <T,E extends Throwable> T execute(org.springframework.retry.RetryCallback<T, E> retryCallback, org.springframework.retry.RecoveryCallback<T> recoveryCallback, Collection<org.springframework.retry.RetryState> states) throws E, Exception -
execute
public final <T,E extends Throwable> T execute(org.springframework.retry.RetryCallback<T, E> retryCallback, org.springframework.retry.RecoveryCallback<T> recoveryCallback, org.springframework.retry.RetryState retryState) throws E- Specified by:
execute
in interfaceorg.springframework.retry.RetryOperations
- Throws:
E extends Throwable
-
execute
public final <T,E extends Throwable> T execute(org.springframework.retry.RetryCallback<T, E> retryCallback, org.springframework.retry.RecoveryCallback<T> recoveryCallback) throws E- Specified by:
execute
in interfaceorg.springframework.retry.RetryOperations
- Throws:
E extends Throwable
-
execute
public final <T,E extends Throwable> T execute(org.springframework.retry.RetryCallback<T, E> retryCallback, org.springframework.retry.RetryState retryState) throws E, org.springframework.retry.ExhaustedRetryException- Specified by:
execute
in interfaceorg.springframework.retry.RetryOperations
- Throws:
E extends Throwable
org.springframework.retry.ExhaustedRetryException
-
execute
public final <T,E extends Throwable> T execute(org.springframework.retry.RetryCallback<T, E> retryCallback) throws E- Specified by:
execute
in interfaceorg.springframework.retry.RetryOperations
- Throws:
E extends Throwable
-
createState
-
createState
-
registerListener
public void registerListener(org.springframework.retry.RetryListener listener) -
setBackOffPolicy
public void setBackOffPolicy(org.springframework.retry.backoff.BackOffPolicy backOffPolicy) -
setListeners
public void setListeners(org.springframework.retry.RetryListener[] listeners) -
setRetryContextCache
public void setRetryContextCache(org.springframework.retry.policy.RetryContextCache retryContextCache) -
setRetryPolicy
public void setRetryPolicy(org.springframework.retry.RetryPolicy retryPolicy) -
canRetry
public boolean canRetry(org.springframework.retry.RetryContext context)
-