public final class CircuitBreakerStateMachine extends java.lang.Object implements CircuitBreaker
CircuitBreaker.EventPublisher, CircuitBreaker.Metrics, CircuitBreaker.State, CircuitBreaker.StateTransition| Constructor and Description |
|---|
CircuitBreakerStateMachine(java.lang.String name)
Creates a circuitBreaker with default config.
|
CircuitBreakerStateMachine(java.lang.String name,
CircuitBreakerConfig circuitBreakerConfig)
Creates a circuitBreaker.
|
CircuitBreakerStateMachine(java.lang.String name,
java.util.function.Supplier<CircuitBreakerConfig> circuitBreakerConfig)
Creates a circuitBreaker.
|
| Modifier and Type | Method and Description |
|---|---|
CircuitBreakerConfig |
getCircuitBreakerConfig()
Get the config of this CircuitBreaker.
|
CircuitBreaker.EventPublisher |
getEventPublisher()
Returns an EventPublisher which can be used to register event consumers.
|
CircuitBreaker.Metrics |
getMetrics()
Returns the Metrics of this CircuitBreaker.
|
java.lang.String |
getName()
Get the name of this CircuitBreaker.
|
CircuitBreaker.State |
getState()
Get the state of this CircuitBreaker.
|
boolean |
isCallPermitted()
Requests permission to call this backend.
|
void |
onError(long durationInNanos,
java.lang.Throwable throwable)
Records a failed call.
|
void |
onSuccess(long durationInNanos)
Records a successful call.
|
void |
reset()
Returns the circuit breaker to its original closed state, losing statistics.
|
java.lang.String |
toString() |
void |
transitionToClosedState()
Transitions the state machine to CLOSED state.
|
void |
transitionToDisabledState()
Transitions the state machine to a DISABLED state, stopping state transition, metrics and event publishing.
|
void |
transitionToForcedOpenState()
Transitions the state machine to a FORCED_OPEN state, stopping state transition, metrics and event publishing.
|
void |
transitionToHalfOpenState()
Transitions the state machine to HALF_OPEN state.
|
void |
transitionToOpenState()
Transitions the state machine to OPEN state.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitdecorateCallable, decorateCheckedConsumer, decorateCheckedFunction, decorateCheckedRunnable, decorateCheckedSupplier, decorateCompletionStage, decorateConsumer, decorateFunction, decorateRunnable, decorateSupplier, executeCallable, executeCheckedSupplier, executeCompletionStage, executeRunnable, executeSupplier, of, of, ofDefaultspublic CircuitBreakerStateMachine(java.lang.String name,
CircuitBreakerConfig circuitBreakerConfig)
name - the name of the CircuitBreakercircuitBreakerConfig - The CircuitBreaker configuration.public CircuitBreakerStateMachine(java.lang.String name)
name - the name of the CircuitBreakerpublic CircuitBreakerStateMachine(java.lang.String name,
java.util.function.Supplier<CircuitBreakerConfig> circuitBreakerConfig)
name - the name of the CircuitBreakercircuitBreakerConfig - The CircuitBreaker configuration supplier.public boolean isCallPermitted()
isCallPermitted in interface CircuitBreakerpublic void onError(long durationInNanos,
java.lang.Throwable throwable)
CircuitBreakeronError in interface CircuitBreakerdurationInNanos - The elapsed time duration of the callthrowable - The throwable which must be recordedpublic void onSuccess(long durationInNanos)
CircuitBreakeronSuccess in interface CircuitBreakerdurationInNanos - The elapsed time duration of the call
This method must be invoked when a call was successful.public CircuitBreaker.State getState()
getState in interface CircuitBreakerpublic java.lang.String getName()
getName in interface CircuitBreakerpublic CircuitBreakerConfig getCircuitBreakerConfig()
getCircuitBreakerConfig in interface CircuitBreakerpublic CircuitBreaker.Metrics getMetrics()
CircuitBreakergetMetrics in interface CircuitBreakerpublic java.lang.String toString()
toString in class java.lang.Objectpublic void reset()
CircuitBreakerreset in interface CircuitBreakerpublic void transitionToDisabledState()
CircuitBreakertransitionToDisabledState in interface CircuitBreakerpublic void transitionToForcedOpenState()
CircuitBreakertransitionToForcedOpenState in interface CircuitBreakerpublic void transitionToClosedState()
CircuitBreakertransitionToClosedState in interface CircuitBreakerpublic void transitionToOpenState()
CircuitBreakertransitionToOpenState in interface CircuitBreakerpublic void transitionToHalfOpenState()
CircuitBreakertransitionToHalfOpenState in interface CircuitBreakerpublic CircuitBreaker.EventPublisher getEventPublisher()
CircuitBreakergetEventPublisher in interface CircuitBreaker