Exception: DilisensePepClient::CircuitBreakerError
- Defined in:
- lib/dilisense_pep_client/errors.rb
Overview
Circuit breaker errors (from our circuit breaker implementation)
Instance Attribute Summary collapse
-
#circuit_state ⇒ Object
readonly
Returns the value of attribute circuit_state.
-
#next_attempt_time ⇒ Object
readonly
Returns the value of attribute next_attempt_time.
-
#service_name ⇒ Object
readonly
Returns the value of attribute service_name.
Attributes inherited from Error
#context, #error_code, #request_id, #timestamp
Instance Method Summary collapse
-
#initialize(message, service_name:, circuit_state:, next_attempt_time: nil, **options) ⇒ CircuitBreakerError
constructor
A new instance of CircuitBreakerError.
- #retryable? ⇒ Boolean
- #security_event? ⇒ Boolean
Methods inherited from Error
Constructor Details
#initialize(message, service_name:, circuit_state:, next_attempt_time: nil, **options) ⇒ CircuitBreakerError
Returns a new instance of CircuitBreakerError.
324 325 326 327 328 329 330 331 332 333 334 335 336 |
# File 'lib/dilisense_pep_client/errors.rb', line 324 def initialize(, service_name:, circuit_state:, next_attempt_time: nil, **) @service_name = service_name @circuit_state = circuit_state @next_attempt_time = next_attempt_time context = { service_name: service_name, circuit_state: circuit_state, next_attempt_time: next_attempt_time }.merge(.fetch(:context, {})) super(, error_code: "CIRCUIT_BREAKER_OPEN", context: context, **) end |
Instance Attribute Details
#circuit_state ⇒ Object (readonly)
Returns the value of attribute circuit_state.
322 323 324 |
# File 'lib/dilisense_pep_client/errors.rb', line 322 def circuit_state @circuit_state end |
#next_attempt_time ⇒ Object (readonly)
Returns the value of attribute next_attempt_time.
322 323 324 |
# File 'lib/dilisense_pep_client/errors.rb', line 322 def next_attempt_time @next_attempt_time end |
#service_name ⇒ Object (readonly)
Returns the value of attribute service_name.
322 323 324 |
# File 'lib/dilisense_pep_client/errors.rb', line 322 def service_name @service_name end |
Instance Method Details
#retryable? ⇒ Boolean
338 339 340 |
# File 'lib/dilisense_pep_client/errors.rb', line 338 def retryable? circuit_state == :half_open end |
#security_event? ⇒ Boolean
342 343 344 |
# File 'lib/dilisense_pep_client/errors.rb', line 342 def security_event? true # Circuit breaker events are significant for monitoring end |