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 thedelayto occur between execution attempts.withDelayFn(ContextualSupplier<R, Duration> delayFunction) Sets thedelayFunctionthat computes the next delay before allowing another execution.withDelayFnOn(ContextualSupplier<R, Duration> delayFunction, Class<F> exception) Sets thedelayFunctionthat computes the next delay before allowing another execution.withDelayFnWhen(ContextualSupplier<R, Duration> delayFunction, R result) Sets thedelayFunctionthat 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, resultPredicateForMethods inherited from class dev.failsafe.PolicyBuilder
onFailure, onSuccess
-
Constructor Details
-
DelayablePolicyBuilder
-
-
Method Details
-
withDelay
Sets thedelayto occur between execution attempts.- Throws:
NullPointerException- ifdelayis nullIllegalArgumentException- ifdelayinvalid input: '<'= 0
-
withDelayFn
Sets thedelayFunctionthat computes the next delay before allowing another execution.The
delayFunctionmust complete quickly, not have side-effects, and always return the same result for the same input. Exceptions thrown by thedelayFunctionmethod 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
ExecutionContextthat is provided to thedelayFunctionmay benullif the prior execution exception was manually recorded outside of a Failsafe execution.
- Throws:
NullPointerException- ifdelayFunctionis null
-
withDelayFnOn
public <F extends Throwable> S withDelayFnOn(ContextualSupplier<R, Duration> delayFunction, Class<F> exception) Sets thedelayFunctionthat computes the next delay before allowing another execution. Delays will only occur for exceptions that are assignable from theexception.The
delayFunctionmust complete quickly, not have side-effects, and always return the same result for the same input. Exceptions thrown by thedelayFunctionmethod 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
ExecutionContextthat is provided to thedelayFunctionmay benullif 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- ifdelayFunctionorexceptionare null
-
withDelayFnWhen
Sets thedelayFunctionthat computes the next delay before allowing another execution. Delays will only occur for results that equal theresult.The
delayFunctionmust complete quickly, not have side-effects, and always return the same result for the same input. Exceptions thrown by thedelayFunctionmethod 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
ExecutionContextthat is provided to thedelayFunctionmay benullif 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- ifdelayFunctionorresultare null
-