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