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.
- Author:
- Jonathan Halterman
-
Field Summary
Fields inherited from class 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 FailurePolicyBuilder
handle, handle, handle, handleIf, handleIf, handleResult, handleResultIfMethods inherited from class 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
-