java.lang.Object
io.helidon.faulttolerance.CircuitBreaker.Builder
- All Implemented Interfaces:
Builder<CircuitBreaker.Builder,,CircuitBreaker> Supplier<CircuitBreaker>
- Enclosing interface:
- CircuitBreaker
public static class CircuitBreaker.Builder
extends Object
implements Builder<CircuitBreaker.Builder,CircuitBreaker>
Fluent API builder for
CircuitBreaker.-
Method Summary
Modifier and TypeMethodDescriptionaddApplyOn(Class<? extends Throwable> clazz) Add a throwable to be considered a failure.This throwable will not be considered failure.final CircuitBreaker.BuilderThese throwables will be considered failures, and all other will not.build()Build the instance from this builder.How long to wait before transitioning from open to half-open state.errorRatio(int ratio) How many failures out of 100 will trigger the circuit to open.executor(ScheduledExecutorService scheduledExecutor) Executor service to schedule future tasks.A name assigned for debugging, error reporting or configuration purposes.final CircuitBreaker.BuilderThese throwables will not be considered failures, all other will.successThreshold(int successThreshold) How many successful calls will close a half-open circuit.volume(int volume) Rolling window size used to calculate ratio of failed requests.
-
Method Details
-
build
Description copied from interface:BuilderBuild the instance from this builder.- Specified by:
buildin interfaceBuilder<CircuitBreaker.Builder,CircuitBreaker> - Returns:
- instance of the built type
-
delay
How long to wait before transitioning from open to half-open state.- Parameters:
delay- to wait- Returns:
- updated builder instance
-
errorRatio
How many failures out of 100 will trigger the circuit to open. This is adapted to thevolume(int)used to handle the window of requests.If errorRatio is 40, and volume is 10, 4 failed requests will open the circuit.
- Parameters:
ratio- percent of failure that trigger the circuit to open- Returns:
- updated builder instance
- See Also:
-
successThreshold
How many successful calls will close a half-open circuit. Nevertheless the first failed call will open the circuit again.- Parameters:
successThreshold- number of calls- Returns:
- updated builder instance
-
volume
Rolling window size used to calculate ratio of failed requests.- Parameters:
volume- how big a window is used to calculate error errorRatio- Returns:
- updated builder instance
- See Also:
-
applyOn
These throwables will be considered failures, and all other will not.Cannot be combined with
skipOn.- Parameters:
classes- to consider failures to calculate failure ratio- Returns:
- updated builder instance
-
addApplyOn
Add a throwable to be considered a failure.- Parameters:
clazz- to consider failure to calculate failure ratio- Returns:
- updated builder instance
- See Also:
-
applyOn
-
skipOn
These throwables will not be considered failures, all other will.Cannot be combined with
applyOn.- Parameters:
classes- to consider successful- Returns:
- updated builder instance
-
addSkipOn
This throwable will not be considered failure.- Parameters:
clazz- to consider successful- Returns:
- updated builder instance
-
executor
Executor service to schedule future tasks. By default uses an executor configured onFaultTolerance.scheduledExecutor(java.util.function.Supplier).- Parameters:
scheduledExecutor- executor to use- Returns:
- updated builder instance
-
name
A name assigned for debugging, error reporting or configuration purposes.- Parameters:
name- the name- Returns:
- updated builder instance
-