Method: Gracefully::CircuitBreaker#execute
- Defined in:
- lib/gracefully/circuit_breaker.rb
#execute(&block) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/gracefully/circuit_breaker.rb', line 16 def execute(&block) if open? && (@try_close_after.nil? || try_close_period_passed?.!) raise CurrentlyOpenError, "Opened at #{opened_date}" end clear_opened_date! begin v = block.call mark_success v rescue => e mark_failure raise e end end |