java.lang.Object
io.helidon.faulttolerance.FaultTolerance
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:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classA builder used for setting up a customized list of fault tolerance handlers.static classA builder used for fault tolerance handlers that require a specific type to be used, such asFallback. -
Method Summary
Modifier and TypeMethodDescriptionstatic FaultTolerance.Builderbuilder()A builder to configure a customized sequence of fault tolerance handlers.static voidConfigure Helidon wide defaults from a config instance.static voidexecutor(Supplier<? extends ExecutorService> executor) Configure Helidon wide executor service for Fault Tolerance.static booleanMostly used for testing.static voidscheduledExecutor(Supplier<? extends ScheduledExecutorService> executor) Configure Helidon wide scheduled executor service for Fault Tolerance.static <T> FaultTolerance.TypedBuilder<T>A typed builder to configure a customized sequence of fault tolerance handlers.
-
Method Details
-
config
Configure Helidon wide defaults from a config instance.- Parameters:
config- config to read fault tolerance configuration
-
executor
Configure Helidon wide executor service for Fault Tolerance.- Parameters:
executor- executor service to use, such as forAsync
-
scheduledExecutor
Configure Helidon wide scheduled executor service for Fault Tolerance.- Parameters:
executor- scheduled executor service to use, such as forRetryscheduling
-
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
A builder to configure a customized sequence of fault tolerance handlers.- Returns:
- a new builder
-
typedBuilder
A typed builder to configure a customized sequence of fault tolerance handlers.- Type Parameters:
T- type of result- Returns:
- a new builder
-