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 outerPolicy,
P... policies)
Creates and returns a new
FailsafeExecutor instance that will handle failures according to the given outerPolicy and 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 outerPolicy and 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 is equivalent to composition using the the compose method:
Failsafe.with(fallback).compose(retryPolicy).compose(circuitBreaker).get(supplier);These result 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 nullpublic 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 © 2022. All rights reserved.