public class ThresholdCircuitBreaker extends AbstractCircuitBreaker<Long>
It contains an internal counter that starts in zero, and each call increments the counter by a given amount. If the threshold is zero, the circuit breaker will be in a permanent open state.
An example of use case could be a memory circuit breaker.
long threshold = 10L;
ThresholdCircuitBreaker breaker = new ThresholdCircuitBreaker(10L);
...
public void handleRequest(Request request) {
long memoryUsed = estimateMemoryUsage(request);
if (breaker.incrementAndCheckState(memoryUsed)) {
// actually handle this request
} else {
// do something else, e.g. send an error code
}
}
#Thread safe#
AbstractCircuitBreaker.StatePROPERTY_NAME, state| Constructor and Description |
|---|
ThresholdCircuitBreaker(long threshold)
Creates a new instance of
ThresholdCircuitBreaker and initializes the threshold. |
| Modifier and Type | Method and Description |
|---|---|
boolean |
checkState()
Checks the state of this circuit breaker and changes it if necessary.
|
void |
close()
Closes this circuit breaker.
|
long |
getThreshold()
Gets the threshold.
|
boolean |
incrementAndCheckState(Long increment)
Increments the monitored value and performs a check of the current state of this
circuit breaker.
|
addChangeListener, changeState, isClosed, isOpen, isOpen, open, removeChangeListenerpublic ThresholdCircuitBreaker(long threshold)
ThresholdCircuitBreaker and initializes the threshold.threshold - the threshold.public boolean checkState()
checkState in interface CircuitBreaker<Long>checkState in class AbstractCircuitBreaker<Long>public void close()
Resets the internal counter back to its initial value (zero).
close in interface CircuitBreaker<Long>close in class AbstractCircuitBreaker<Long>public long getThreshold()
public boolean incrementAndCheckState(Long increment)
CircuitBreaker.checkState(), but the monitored
value is incremented before the state check is performed.
If the threshold is zero, the circuit breaker will be in a permanent open state.
incrementAndCheckState in interface CircuitBreaker<Long>incrementAndCheckState in class AbstractCircuitBreaker<Long>increment - value to increment in the monitored value of the circuit breakerCopyright © 2001–2025 The Apache Software Foundation. All rights reserved.