public final class RetryPolicy extends Object
The retryOn methods describe when a retry should be performed for a particular failure. The retryWhen
method describes when a retry should be performed for a particular result. If multiple retryOn or
retryWhen conditions are specified, any matching condition can allow a retry. The abortOn,
abortWhen and abortIf methods describe when retries should be aborted.
| Constructor and Description |
|---|
RetryPolicy()
Creates a retry policy that always retries with no delay.
|
RetryPolicy(RetryPolicy rp)
Copy constructor.
|
| Modifier and Type | Method and Description |
|---|---|
<T> RetryPolicy |
abortIf(BiPredicate<T,? extends Throwable> completionPredicate)
Specifies that retries should be aborted if the
completionPredicate matches the completion result. |
<T> RetryPolicy |
abortIf(Predicate<T> resultPredicate)
Specifies that retries should be aborted if the
resultPredicate matches the result. |
RetryPolicy |
abortOn(Class<? extends Throwable>... failures)
Specifies when retries should be aborted.
|
RetryPolicy |
abortOn(List<Class<? extends Throwable>> failures)
Specifies when retries should be aborted.
|
RetryPolicy |
abortOn(Predicate<? extends Throwable> failurePredicate)
Specifies that retries should be aborted if the
failurePredicate matches the failure. |
RetryPolicy |
abortWhen(Object result)
Specifies that retries should be aborted if the execution result matches the
result. |
boolean |
allowsRetries()
Returns whether the policy allows any retries based on the configured maxRetries and maxDuration.
|
boolean |
allowsRetriesFor(Object result,
Throwable failure)
Returns whether the policy will allow retries for the
failure. |
RetryPolicy |
copy()
Returns a copy of this RetryPolicy.
|
Duration |
getDelay()
Returns the delay between retries.
|
double |
getDelayMultiplier()
Returns the delay multiplier for backoff retries.
|
Duration |
getMaxDelay()
Returns the max delay between backoff retries.
|
Duration |
getMaxDuration()
Returns the max duration to perform retries for.
|
int |
getMaxRetries()
Returns the max retries.
|
<T> RetryPolicy |
retryIf(BiPredicate<T,? extends Throwable> completionPredicate)
Specifies that a retry should occur if the
completionPredicate matches the completion result and the retry
policy is not exceeded. |
<T> RetryPolicy |
retryIf(Predicate<T> resultPredicate)
Specifies that a retry should occur if the
resultPredicate matches the result and the retry policy is not
exceeded. |
RetryPolicy |
retryOn(Class<? extends Throwable>... failures)
Specifies the failures to retry on.
|
RetryPolicy |
retryOn(List<Class<? extends Throwable>> failures)
Specifies the failures to retry on.
|
RetryPolicy |
retryOn(Predicate<? extends Throwable> failurePredicate)
Specifies that a retry should occur if the
failurePredicate matches the failure and the retry policy is not
exceeded. |
RetryPolicy |
retryWhen(Object result)
Specifies that a retry should occur if the execution result matches the
result and the retry policy is not
exceeded. |
RetryPolicy |
withBackoff(long delay,
long maxDelay,
TimeUnit timeUnit)
Sets the
delay between retries, exponentially backing of to the maxDelay and multiplying successive
delays by a factor of 2. |
RetryPolicy |
withBackoff(long delay,
long maxDelay,
TimeUnit timeUnit,
double delayMultiplier)
Sets the
delay between retries, exponentially backing of to the maxDelay and multiplying successive
delays by the delayMultiplier. |
RetryPolicy |
withDelay(long delay,
TimeUnit timeUnit)
Sets the
delay between retries. |
RetryPolicy |
withMaxDuration(long maxDuration,
TimeUnit timeUnit)
Sets the max duration to perform retries for.
|
RetryPolicy |
withMaxRetries(int maxRetries)
Sets the max number of retries to perform.
|
public RetryPolicy()
public RetryPolicy(RetryPolicy rp)
public boolean allowsRetries()
public boolean allowsRetriesFor(Object result, Throwable failure)
failure.public RetryPolicy copy()
public Duration getDelay()
Duration.NONE.public double getDelayMultiplier()
public Duration getMaxDelay()
withBackoff(long, long, TimeUnit)public Duration getMaxDuration()
withMaxDuration(long, TimeUnit)public int getMaxRetries()
withMaxRetries(int)public RetryPolicy abortOn(Class<? extends Throwable>... failures)
failures will be result
in retries being aborted.NullPointerException - if failures is nullIllegalArgumentException - if failures is emptypublic RetryPolicy abortOn(List<Class<? extends Throwable>> failures)
failures will be result
in retries being aborted.NullPointerException - if failures is nullIllegalArgumentException - if failures is emptypublic RetryPolicy abortOn(Predicate<? extends Throwable> failurePredicate)
failurePredicate matches the failure.NullPointerException - if failurePredicate is nullpublic <T> RetryPolicy abortIf(BiPredicate<T,? extends Throwable> completionPredicate)
completionPredicate matches the completion result.NullPointerException - if completionPredicate is nullpublic <T> RetryPolicy abortIf(Predicate<T> resultPredicate)
resultPredicate matches the result.NullPointerException - if resultPredicate is nullpublic RetryPolicy abortWhen(Object result)
result.public RetryPolicy retryOn(Class<? extends Throwable>... failures)
failures will be retried.NullPointerException - if failures is nullIllegalArgumentException - if failures is emptypublic RetryPolicy retryOn(List<Class<? extends Throwable>> failures)
failures will be retried.NullPointerException - if failures is nullIllegalArgumentException - if failures is emptypublic RetryPolicy retryOn(Predicate<? extends Throwable> failurePredicate)
failurePredicate matches the failure and the retry policy is not
exceeded.NullPointerException - if failurePredicate is nullpublic <T> RetryPolicy retryIf(BiPredicate<T,? extends Throwable> completionPredicate)
completionPredicate matches the completion result and the retry
policy is not exceeded.NullPointerException - if completionPredicate is nullpublic <T> RetryPolicy retryIf(Predicate<T> resultPredicate)
resultPredicate matches the result and the retry policy is not
exceeded.NullPointerException - if resultPredicate is nullpublic RetryPolicy retryWhen(Object result)
result and the retry policy is not
exceeded.public RetryPolicy withBackoff(long delay, long maxDelay, TimeUnit timeUnit)
delay between retries, exponentially backing of to the maxDelay and multiplying successive
delays by a factor of 2.NullPointerException - if timeUnit is nullIllegalArgumentException - if delay is <= 0 or delay is >= maxDelaypublic RetryPolicy withBackoff(long delay, long maxDelay, TimeUnit timeUnit, double delayMultiplier)
delay between retries, exponentially backing of to the maxDelay and multiplying successive
delays by the delayMultiplier.NullPointerException - if timeUnit is nullIllegalStateException - if delay is >= the maxDurationIllegalArgumentException - if delay <= 0, delay is >= maxDelay, or the
delayMultiplier is <= 1public RetryPolicy withDelay(long delay, TimeUnit timeUnit)
delay between retries.NullPointerException - if timeUnit is nullIllegalArgumentException - if delay <= 0IllegalStateException - if delay is >= the maxDurationpublic RetryPolicy withMaxDuration(long maxDuration, TimeUnit timeUnit)
NullPointerException - if timeUnit is nullIllegalStateException - if maxDuration is <= the delaypublic RetryPolicy withMaxRetries(int maxRetries)
IllegalArgumentException - if maxRetries < -1Copyright © 2016. All Rights Reserved.