Class EventCountCircuitBreaker.StateStrategy
java.lang.Object
org.apache.commons.lang3.concurrent.EventCountCircuitBreaker.StateStrategy
- Direct Known Subclasses:
EventCountCircuitBreaker.StateStrategyClosed,EventCountCircuitBreaker.StateStrategyOpen
- Enclosing class:
EventCountCircuitBreaker
Internally used class for executing check logic based on the current state of the
circuit breaker. Having this logic extracted into special classes avoids complex
if-then-else cascades.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected abstract longObtains the check interval to applied for the represented state from the givenCircuitBreaker.booleanisCheckIntervalFinished(EventCountCircuitBreaker breaker, EventCountCircuitBreaker.CheckIntervalData currentData, long now) Returns a flag whether the end of the current check interval is reached.abstract booleanisStateTransition(EventCountCircuitBreaker breaker, EventCountCircuitBreaker.CheckIntervalData currentData, EventCountCircuitBreaker.CheckIntervalData nextData) Checks whether the specifiedEventCountCircuitBreaker.CheckIntervalDataobjects indicate that a state transition should occur.
-
Constructor Details
-
StateStrategy
private StateStrategy()
-
-
Method Details
-
fetchCheckInterval
Obtains the check interval to applied for the represented state from the givenCircuitBreaker.- Parameters:
breaker- theCircuitBreaker- Returns:
- the check interval to be applied
-
isCheckIntervalFinished
public boolean isCheckIntervalFinished(EventCountCircuitBreaker breaker, EventCountCircuitBreaker.CheckIntervalData currentData, long now) Returns a flag whether the end of the current check interval is reached.- Parameters:
breaker- theCircuitBreakercurrentData- the current state objectnow- the current time- Returns:
- a flag whether the end of the current check interval is reached
-
isStateTransition
public abstract boolean isStateTransition(EventCountCircuitBreaker breaker, EventCountCircuitBreaker.CheckIntervalData currentData, EventCountCircuitBreaker.CheckIntervalData nextData) Checks whether the specifiedEventCountCircuitBreaker.CheckIntervalDataobjects indicate that a state transition should occur. Here the logic which checks for thresholds depending on the current state is implemented.- Parameters:
breaker- theCircuitBreakercurrentData- the currentEventCountCircuitBreaker.CheckIntervalDataobjectnextData- the updatedEventCountCircuitBreaker.CheckIntervalDataobject- Returns:
- a flag whether a state transition should be performed
-