- java.lang.Object
-
- io.helidon.faulttolerance.FaultTolerance
-
public final class FaultTolerance extends Object
System wide fault tolerance configuration and access to a customized sequence of fault tolerance handlers.Fault tolerance provides the following features:
Async
- invoke a blocking synchronous call asynchronously in an executor serviceBulkhead
- limit number of parallel requests to a resourceCircuitBreaker
- stop trying to request a failing resource until it becomes availableFallback
- fall back to another supplier of result in case the usual one failsRetry
- try to call a supplier again if invocation failsTimeout
- time out a request if it takes too long
- See Also:
config(io.helidon.config.Config)
,scheduledExecutor(java.util.function.Supplier)
,executor()
,builder()
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
FaultTolerance.Builder
A builder used for setting up a customized list of fault tolerance handlers.static class
FaultTolerance.TypedBuilder<T>
A builder used for fault tolerance handlers that require a specific type to be used, such asFallback
.
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static FaultTolerance.Builder
builder()
A builder to configure a customized sequence of fault tolerance handlers.static void
config(Config config)
Configure Helidon wide defaults from a config instance.static void
executor(Supplier<? extends ExecutorService> executor)
Configure Helidon wide executor service for Fault Tolerance.static boolean
initialized()
Mostly used for testing.static void
scheduledExecutor(Supplier<? extends ScheduledExecutorService> executor)
Configure Helidon wide scheduled executor service for Fault Tolerance.static <T> FaultTolerance.TypedBuilder<T>
typedBuilder()
A typed builder to configure a customized sequence of fault tolerance handlers.
-
-
-
Method Detail
-
config
public static void config(Config config)
Configure Helidon wide defaults from a config instance.- Parameters:
config
- config to read fault tolerance configuration
-
executor
public static void executor(Supplier<? extends ExecutorService> executor)
Configure Helidon wide executor service for Fault Tolerance.- Parameters:
executor
- executor service to use, such as forAsync
-
scheduledExecutor
public static void scheduledExecutor(Supplier<? extends ScheduledExecutorService> executor)
Configure Helidon wide scheduled executor service for Fault Tolerance.- Parameters:
executor
- scheduled executor service to use, such as forRetry
scheduling
-
initialized
public static boolean initialized()
Mostly used for testing. This class is considered to be initialized if any of its (lazy valued) executors were returned.- Returns:
- boolean indicating whether init took place
-
builder
public static FaultTolerance.Builder builder()
A builder to configure a customized sequence of fault tolerance handlers.- Returns:
- a new builder
-
typedBuilder
public static <T> FaultTolerance.TypedBuilder<T> typedBuilder()
A typed builder to configure a customized sequence of fault tolerance handlers.- Type Parameters:
T
- type of result- Returns:
- a new builder
-
-