Exception: BrainzLab::Utilities::CircuitBreaker::CircuitOpenError
- Inherits:
-
ServiceUnavailableError
- Object
- StandardError
- Error
- ServiceUnavailableError
- BrainzLab::Utilities::CircuitBreaker::CircuitOpenError
- Defined in:
- lib/brainzlab/utilities/circuit_breaker.rb
Overview
Error raised when circuit is open Inherits from BrainzLab::ServiceUnavailableError for structured error handling
Constant Summary
Constants inherited from Error
Instance Attribute Summary collapse
-
#circuit_name ⇒ Object
readonly
Returns the value of attribute circuit_name.
-
#failure_count ⇒ Object
readonly
Returns the value of attribute failure_count.
-
#last_failure_at ⇒ Object
readonly
Returns the value of attribute last_failure_at.
Attributes inherited from ServiceUnavailableError
Attributes inherited from Error
#code, #context, #docs_url, #hint
Instance Method Summary collapse
-
#initialize(circuit_name, failure_count: nil, last_failure_at: nil) ⇒ CircuitOpenError
constructor
A new instance of CircuitOpenError.
Methods inherited from Error
#as_json, #detailed_message, #inspect, #to_h, #to_s
Constructor Details
#initialize(circuit_name, failure_count: nil, last_failure_at: nil) ⇒ CircuitOpenError
Returns a new instance of CircuitOpenError.
270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 |
# File 'lib/brainzlab/utilities/circuit_breaker.rb', line 270 def initialize(circuit_name, failure_count: nil, last_failure_at: nil) @circuit_name = circuit_name @failure_count = failure_count @last_failure_at = last_failure_at super( "Circuit '#{circuit_name}' is open", hint: 'The circuit breaker has tripped due to repeated failures. The service will be retried automatically after the recovery timeout.', code: 'circuit_open', service_name: circuit_name, context: { circuit_name: circuit_name, failure_count: failure_count, last_failure_at: last_failure_at&.iso8601 }.compact ) end |
Instance Attribute Details
#circuit_name ⇒ Object (readonly)
Returns the value of attribute circuit_name.
268 269 270 |
# File 'lib/brainzlab/utilities/circuit_breaker.rb', line 268 def circuit_name @circuit_name end |
#failure_count ⇒ Object (readonly)
Returns the value of attribute failure_count.
268 269 270 |
# File 'lib/brainzlab/utilities/circuit_breaker.rb', line 268 def failure_count @failure_count end |
#last_failure_at ⇒ Object (readonly)
Returns the value of attribute last_failure_at.
268 269 270 |
# File 'lib/brainzlab/utilities/circuit_breaker.rb', line 268 def last_failure_at @last_failure_at end |