Class: RailsInformant::Notifiers::CircuitBreaker
- Inherits:
-
Object
- Object
- RailsInformant::Notifiers::CircuitBreaker
- Defined in:
- lib/rails_informant/notifiers/circuit_breaker.rb
Constant Summary collapse
- FAILURE_THRESHOLD =
5- RESET_TIMEOUT =
10.minutes
Class Method Summary collapse
Class Method Details
.open? ⇒ Boolean
10 11 12 13 14 15 |
# File 'lib/rails_informant/notifiers/circuit_breaker.rb', line 10 def open? MUTEX.synchronize do return false if failure_count < FAILURE_THRESHOLD last_failure_at > RESET_TIMEOUT.ago end end |
.record_failure ⇒ Object
17 18 19 20 21 22 |
# File 'lib/rails_informant/notifiers/circuit_breaker.rb', line 17 def record_failure MUTEX.synchronize do @failure_count = failure_count + 1 @last_failure_at = Time.current end end |
.record_success ⇒ Object
24 25 26 27 28 29 |
# File 'lib/rails_informant/notifiers/circuit_breaker.rb', line 24 def record_success MUTEX.synchronize do @failure_count = 0 @last_failure_at = nil end end |
.reset! ⇒ Object
31 32 33 34 35 36 |
# File 'lib/rails_informant/notifiers/circuit_breaker.rb', line 31 def reset! MUTEX.synchronize do @failure_count = 0 @last_failure_at = nil end end |