public class Failsafe extends Object
| Constructor and Description |
|---|
Failsafe() |
| Modifier and Type | Method and Description |
|---|---|
static <R> FailsafeExecutor<R> |
none()
Creates and returns a noop
FailsafeExecutor instance that treats any exception as a failure for the
purposes of calling event listeners, and provides no additional failure handling. |
static <R> FailsafeExecutor<R> |
with(List<? extends Policy<R>> policies)
Creates and returns a new
FailsafeExecutor instance that will handle failures according to the given policies. |
static <R,P extends Policy<R>> |
with(P[] policies)
Deprecated.
Use
with(Policy, Policy[]) instead |
static <R,P extends Policy<R>> |
with(P outerPolicy,
P... policies)
Creates and returns a new
FailsafeExecutor instance that will handle failures according to the given
policies. |
@SafeVarargs public static <R,P extends Policy<R>> FailsafeExecutor<R> with(P outerPolicy, P... policies)
FailsafeExecutor instance that will handle failures according to the given
policies. The policies are composed around an execution and will handle execution results in reverse, with the last
policy being applied first. For example, consider:
Failsafe.with(fallback, retryPolicy, circuitBreaker).get(supplier);This results in the following internal composition when executing a
runnable or supplier and
handling its result:
Fallback(RetryPolicy(CircuitBreaker(Supplier)))This means the
CircuitBreaker is first to evaluate the Supplier's result, then the RetryPolicy, then the Fallback. Each policy makes its own determination as to whether the result
represents a failure. This allows different policies to be used for handling different types of failures.R - result typeP - policy typeNullPointerException - if outerPolicy is null@Deprecated public static <R,P extends Policy<R>> FailsafeExecutor<R> with(P[] policies)
with(Policy, Policy[]) insteadFailsafeExecutor instance that will handle failures according to the given policies. The policies are composed around an execution and will handle execution results in reverse, with
the last policy being applied first. For example, consider:
Failsafe.with(fallback, retryPolicy, circuitBreaker).get(supplier);This results in the following internal composition when executing the
supplier and handling its result:
Fallback(RetryPolicy(CircuitBreaker(Supplier)))This means the
CircuitBreaker is first to evaluate the Supplier's result, then the RetryPolicy, then the Fallback. Each policy makes its own determination as to whether the result
represents a failure. This allows different policies to be used for handling different types of failures.R - result typeP - policy typeNullPointerException - if policies is nullIllegalArgumentException - if policies is emptypublic static <R> FailsafeExecutor<R> with(List<? extends Policy<R>> policies)
FailsafeExecutor instance that will handle failures according to the given policies. The policies are composed around an execution and will handle execution results in reverse, with
the last policy being applied first. For example, consider:
Failsafe.with(Arrays.asList(fallback, retryPolicy, circuitBreaker)).get(supplier);This results in the following internal composition when executing a
runnable or supplier and
handling its result:
Fallback(RetryPolicy(CircuitBreaker(Supplier)))This means the
CircuitBreaker is first to evaluate the Supplier's result, then the RetryPolicy, then the Fallback. Each policy makes its own determination as to whether the result
represents a failure. This allows different policies to be used for handling different types of failures.R - result typeNullPointerException - if policies is nullIllegalArgumentException - if policies is emptypublic static <R> FailsafeExecutor<R> none()
FailsafeExecutor instance that treats any exception as a failure for the
purposes of calling event listeners, and provides no additional failure handling.R - result typeNullPointerException - if policies is nullIllegalArgumentException - if policies is emptyCopyright © 2021. All rights reserved.