Slide 25
Slide 25 text
Mudanças
• Try to execute
• Last failure time
• Reset last failure time
def handle(&b)!
case state!
when :closed, :half_open!
try_to_execute &b!
when :open then handle_open!
end!
end!
!
def try_to_execute(&block)!
begin!
yield_with_timeout(&block)!
reset!
rescue Timeout::Error!
record_failure!
raise $!!
end!
end!
!
def yield_with_timeout(&b)!
Timeout::timeout(@timeout, &b)!
end!
!
def reset!
@failure_count = 0!
@last_failure_time = nil!
end!
!
def record_failure!
@last_failure_time = Time.now!
@failure_count += 1!
end!