Восстановить сеть::ERR_CONNECTION_SET Механизировать Ruby

Я создаю веб-сканер, используя Mechanize для ruby. Я буду запускать пакеты по 200 Кб одновременно, и я хочу иметь возможность установить переменную экземпляра, которая не будет действительна для сайта, и перейти к следующему сайту, когда запрос get вернет ошибку. Например, я сканирую сайт, который возвращается, когда по нему запускается запрос http get Error 101 (net::ERR_CONNECTION_RESET): The connection was reset. и мое приложение вылетает.

  def crawl  
    agent = Mechanize.new
    agent.log = Logger.new('out.log')
    agent.user_agent_alias = 'Mac Safari'
    begin
      page = agent.get(@url)
    rescue Mechanize::ResponseCodeError => exception
      if exception.response_code == '400' or exception.response_code == '500'
        @isActive = false
        return
      end
    end
  end

Есть ли исключение, которое я должен поймать, чтобы я мог восстановиться после ERR_CONNECTION_RESET или какой подход вы, ребята, использовали для этого?

1 ответ

Решение

Почему бы не поймать все?

begin
  page = agent.get(@url)
rescue
  @isActive = false
end
Другие вопросы по тегам