Package dev.failsafe
Class DelayablePolicyBuilder<S,C extends DelayablePolicyConfig<R>,R>
java.lang.Object
dev.failsafe.PolicyBuilder<S,C,R>
dev.failsafe.FailurePolicyBuilder<S,C,R>
dev.failsafe.DelayablePolicyBuilder<S,C,R>
- Type Parameters:
S
- self typeC
- config typeR
- result type
- All Implemented Interfaces:
PolicyListeners<S,
R>
- Direct Known Subclasses:
CircuitBreakerBuilder
,RetryPolicyBuilder
public abstract class DelayablePolicyBuilder<S,C extends DelayablePolicyConfig<R>,R>
extends FailurePolicyBuilder<S,C,R>
A builder of policies that can be delayed between executions.
-
Field Summary
Fields inherited from class dev.failsafe.PolicyBuilder
config
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionSets thedelay
to occur between execution attempts.withDelayFn
(ContextualSupplier<R, Duration> delayFunction) Sets thedelayFunction
that computes the next delay before allowing another execution.withDelayFnOn
(ContextualSupplier<R, Duration> delayFunction, Class<F> exception) Sets thedelayFunction
that computes the next delay before allowing another execution.withDelayFnWhen
(ContextualSupplier<R, Duration> delayFunction, R result) Sets thedelayFunction
that computes the next delay before allowing another execution.Methods inherited from class dev.failsafe.FailurePolicyBuilder
failurePredicateFor, failurePredicateFor, handle, handle, handle, handleIf, handleIf, handleResult, handleResultIf, resultPredicateFor, resultPredicateFor
Methods inherited from class dev.failsafe.PolicyBuilder
onFailure, onSuccess
-
Constructor Details
-
DelayablePolicyBuilder
-
-
Method Details
-
withDelay
Sets thedelay
to occur between execution attempts.- Throws:
NullPointerException
- ifdelay
is nullIllegalArgumentException
- ifdelay
invalid input: '<'= 0
-
withDelayFn
Sets thedelayFunction
that computes the next delay before allowing another execution.The
delayFunction
must complete quickly, not have side-effects, and always return the same result for the same input. Exceptions thrown by thedelayFunction
method will not be handled and will cause Failsafe's execution to abort.Notes:
- A negative return value will cause Failsafe to use a configured fixed or backoff delay
- Any configured jitter is still applied to DelayFunction provided values
- Any configured max duration is still applied to DelayFunction provided values
- The
ExecutionContext
that is provided to thedelayFunction
may benull
if the prior execution exception was manually recorded outside of a Failsafe execution.
- Throws:
NullPointerException
- ifdelayFunction
is null
-
withDelayFnOn
public <F extends Throwable> S withDelayFnOn(ContextualSupplier<R, Duration> delayFunction, Class<F> exception) Sets thedelayFunction
that computes the next delay before allowing another execution. Delays will only occur for exceptions that are assignable from theexception
.The
delayFunction
must complete quickly, not have side-effects, and always return the same result for the same input. Exceptions thrown by thedelayFunction
method will not be handled and will cause Failsafe's execution to abort.Notes:
- A negative return value will cause Failsafe to use a configured fixed or backoff delay
- Any configured jitter is still applied to DelayFunction provided values
- Any configured max duration is still applied to DelayFunction provided values
- The
ExecutionContext
that is provided to thedelayFunction
may benull
if the prior execution exception was manually recorded outside of a Failsafe execution.
- Type Parameters:
F
- exception type- Parameters:
delayFunction
- the function to use to compute the delay before a next attemptexception
- the execution exception that is expected in order to trigger the delay- Throws:
NullPointerException
- ifdelayFunction
orexception
are null
-
withDelayFnWhen
Sets thedelayFunction
that computes the next delay before allowing another execution. Delays will only occur for results that equal theresult
.The
delayFunction
must complete quickly, not have side-effects, and always return the same result for the same input. Exceptions thrown by thedelayFunction
method will not be handled and will cause Failsafe's execution to abort.Notes:
- A negative return value will cause Failsafe to use a configured fixed or backoff delay
- Any configured jitter is still applied to DelayFunction provided values
- Any configured max duration is still applied to DelayFunction provided values
- The
ExecutionContext
that is provided to thedelayFunction
may benull
if the prior execution exception was manually recorded outside of a Failsafe execution.
- Parameters:
delayFunction
- the function to use to compute the delay before a next attemptresult
- the execution result that is expected in order to trigger the delay- Throws:
NullPointerException
- ifdelayFunction
orresult
are null
-