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, wait
decorateCallable, decorateCheckedConsumer, decorateCheckedFunction, decorateCheckedRunnable, decorateCheckedSupplier, decorateCompletionStage, decorateConsumer, decorateFunction, decorateRunnable, decorateSupplier, executeCallable, executeCompletionStage, executeRunnable, executeSupplier, of, of, ofDefaults
public 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 CircuitBreaker
public void onError(long durationInNanos, java.lang.Throwable throwable)
CircuitBreaker
onError
in interface CircuitBreaker
durationInNanos
- The elapsed time duration of the callthrowable
- The throwable which must be recordedpublic void onSuccess(long durationInNanos)
CircuitBreaker
onSuccess
in interface CircuitBreaker
durationInNanos
- The elapsed time duration of the call
This method must be invoked when a call was successful.public CircuitBreaker.State getState()
getState
in interface CircuitBreaker
public java.lang.String getName()
getName
in interface CircuitBreaker
public CircuitBreakerConfig getCircuitBreakerConfig()
getCircuitBreakerConfig
in interface CircuitBreaker
public CircuitBreaker.Metrics getMetrics()
CircuitBreaker
getMetrics
in interface CircuitBreaker
public java.lang.String toString()
toString
in class java.lang.Object
public void reset()
CircuitBreaker
reset
in interface CircuitBreaker
public void transitionToDisabledState()
CircuitBreaker
transitionToDisabledState
in interface CircuitBreaker
public void transitionToForcedOpenState()
CircuitBreaker
transitionToForcedOpenState
in interface CircuitBreaker
public void transitionToClosedState()
CircuitBreaker
transitionToClosedState
in interface CircuitBreaker
public void transitionToOpenState()
CircuitBreaker
transitionToOpenState
in interface CircuitBreaker
public void transitionToHalfOpenState()
CircuitBreaker
transitionToHalfOpenState
in interface CircuitBreaker
public CircuitBreaker.EventPublisher getEventPublisher()
CircuitBreaker
getEventPublisher
in interface CircuitBreaker