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 long
Obtains the check interval to applied for the represented state from the givenCircuitBreaker
.boolean
isCheckIntervalFinished
(EventCountCircuitBreaker breaker, EventCountCircuitBreaker.CheckIntervalData currentData, long now) Returns a flag whether the end of the current check interval is reached.abstract boolean
isStateTransition
(EventCountCircuitBreaker breaker, EventCountCircuitBreaker.CheckIntervalData currentData, EventCountCircuitBreaker.CheckIntervalData nextData) Checks whether the specifiedEventCountCircuitBreaker.CheckIntervalData
objects 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
- theCircuitBreaker
currentData
- 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.CheckIntervalData
objects indicate that a state transition should occur. Here the logic which checks for thresholds depending on the current state is implemented.- Parameters:
breaker
- theCircuitBreaker
currentData
- the currentEventCountCircuitBreaker.CheckIntervalData
objectnextData
- the updatedEventCountCircuitBreaker.CheckIntervalData
object- Returns:
- a flag whether a state transition should be performed
-