class RedisClient::CircuitBreaker
def record_error
def record_error now = RedisClient.now expiry = now - @error_timeout @lock.synchronize do if @state == :closed @errors.reject! { |t| t < expiry } end @errors << now @successes = 0 if @state == :half_open || (@state == :closed && @errors.size >= @error_threshold) @state = :open end end end