Class: BreakerMachines::Storage::Base
- Inherits:
-
Object
- Object
- BreakerMachines::Storage::Base
- Defined in:
- lib/breaker_machines/storage/base.rb
Overview
Abstract base class for storage backends
Direct Known Subclasses
Instance Method Summary collapse
-
#clear(circuit_name) ⇒ Object
Cleanup.
- #clear_all ⇒ Object
- #failure_count(circuit_name, window_seconds) ⇒ Object
-
#get_status(circuit_name) ⇒ Object
Status management.
-
#initialize(**options) ⇒ Base
constructor
A new instance of Base.
- #record_failure(circuit_name, duration) ⇒ Object
-
#record_success(circuit_name, duration) ⇒ Object
Metrics tracking.
- #set_status(circuit_name, status, opened_at = nil) ⇒ Object
- #success_count(circuit_name, window_seconds) ⇒ Object
-
#with_timeout(timeout_ms) ⇒ Object
Timeout handling - each backend must implement its own timeout strategy.
Constructor Details
#initialize(**options) ⇒ Base
Returns a new instance of Base.
7 8 9 |
# File 'lib/breaker_machines/storage/base.rb', line 7 def initialize(**) = end |
Instance Method Details
#clear(circuit_name) ⇒ Object
Cleanup
38 39 40 |
# File 'lib/breaker_machines/storage/base.rb', line 38 def clear(circuit_name) raise NotImplementedError end |
#clear_all ⇒ Object
42 43 44 |
# File 'lib/breaker_machines/storage/base.rb', line 42 def clear_all raise NotImplementedError end |
#failure_count(circuit_name, window_seconds) ⇒ Object
33 34 35 |
# File 'lib/breaker_machines/storage/base.rb', line 33 def failure_count(circuit_name, window_seconds) raise NotImplementedError end |
#get_status(circuit_name) ⇒ Object
Status management
12 13 14 |
# File 'lib/breaker_machines/storage/base.rb', line 12 def get_status(circuit_name) raise NotImplementedError end |
#record_failure(circuit_name, duration) ⇒ Object
25 26 27 |
# File 'lib/breaker_machines/storage/base.rb', line 25 def record_failure(circuit_name, duration) raise NotImplementedError end |
#record_success(circuit_name, duration) ⇒ Object
Metrics tracking
21 22 23 |
# File 'lib/breaker_machines/storage/base.rb', line 21 def record_success(circuit_name, duration) raise NotImplementedError end |
#set_status(circuit_name, status, opened_at = nil) ⇒ Object
16 17 18 |
# File 'lib/breaker_machines/storage/base.rb', line 16 def set_status(circuit_name, status, opened_at = nil) raise NotImplementedError end |
#success_count(circuit_name, window_seconds) ⇒ Object
29 30 31 |
# File 'lib/breaker_machines/storage/base.rb', line 29 def success_count(circuit_name, window_seconds) raise NotImplementedError end |
#with_timeout(timeout_ms) ⇒ Object
Timeout handling - each backend must implement its own timeout strategy
47 48 49 |
# File 'lib/breaker_machines/storage/base.rb', line 47 def with_timeout(timeout_ms) raise NotImplementedError, "#{self.class} must implement #with_timeout to handle #{timeout_ms}ms timeouts" end |