class LogStash::Inputs::BeatsSupport::CircuitBreaker
def execute(args = nil)
def execute(args = nil) case state when :open logger.warn("CircuitBreaker::Open", :name => @name) raise OpenBreaker, "for #{@name}" when :close, :half_open if block_given? yield args else @block.call(args) end if state == :half_open logger.warn("CircuitBreaker::Close", :name => @name) reset end end rescue *@exceptions => e logger.warn("CircuitBreaker::rescuing exceptions", :name => @name, :exception => e.class) increment_errors(e) raise HalfOpenBreaker end