Class CircuitBreakerDriver.CircuitBreaker

java.lang.Object
org.pjdbc.drivers.CircuitBreakerDriver.CircuitBreaker
Enclosing class:
CircuitBreakerDriver

public static class CircuitBreakerDriver.CircuitBreaker extends Object
Circuit breaker state machine implementation. Thread-safe using atomic operations.
  • Constructor Details

    • CircuitBreaker

      public CircuitBreaker(String url)
    • CircuitBreaker

      public CircuitBreaker(String name, int failureThreshold, int successThreshold, long resetTimeout)
  • Method Details

    • allowRequest

      public boolean allowRequest()
      Check if the circuit allows requests to pass through. May transition from OPEN to HALF_OPEN if reset timeout has elapsed.
    • recordSuccess

      public void recordSuccess()
      Record a successful operation.
    • recordFailure

      public void recordFailure()
      Record a failed operation.
    • recordRejection

      public void recordRejection()
      Record a rejected request (circuit was open).
    • getName

      public String getName()
    • getState

      public CircuitBreakerDriver.State getState()
    • getFailureCount

      public int getFailureCount()
    • getSuccessCount

      public int getSuccessCount()
    • getFailureThreshold

      public int getFailureThreshold()
    • getSuccessThreshold

      public int getSuccessThreshold()
    • getResetTimeout

      public long getResetTimeout()
    • getTotalRequests

      public long getTotalRequests()
    • getTotalFailures

      public long getTotalFailures()
    • getTotalRejections

      public long getTotalRejections()
    • forceState

      public void forceState(CircuitBreakerDriver.State newState)
      Force the circuit to a specific state (for testing).
    • reset

      public void reset()
      Reset all counters and statistics.
    • toString

      public String toString()
      Overrides:
      toString in class Object