Class EventCountCircuitBreaker.StateStrategy
- java.lang.Object
-
- org.apache.commons.lang3.concurrent.EventCountCircuitBreaker.StateStrategy
-
- Direct Known Subclasses:
EventCountCircuitBreaker.StateStrategyClosed
,EventCountCircuitBreaker.StateStrategyOpen
- Enclosing class:
- EventCountCircuitBreaker
private abstract static class EventCountCircuitBreaker.StateStrategy extends java.lang.Object
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 Modifier Constructor Description private
StateStrategy()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract long
fetchCheckInterval(EventCountCircuitBreaker breaker)
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 specifiedCheckIntervalData
objects indicate that a state transition should occur.
-
-
-
Method Detail
-
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 specifiedCheckIntervalData
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 currentCheckIntervalData
objectnextData
- the updatedCheckIntervalData
object- Returns:
- a flag whether a state transition should be performed
-
fetchCheckInterval
protected abstract long fetchCheckInterval(EventCountCircuitBreaker breaker)
Obtains the check interval to applied for the represented state from the givenCircuitBreaker
.- Parameters:
breaker
- theCircuitBreaker
- Returns:
- the check interval to be applied
-
-