以下の内容はhttps://riocampos-tech.hatenablog.com/entry/20140902/wrapping_nokogiri_for_retryより取得しました。


Nokogiriのエラー処理(open-uri使用時)

書き方に統一感が全く無いのは、全く違うときに書いたためです。そのうち書き直します。

手抜き版

def nokogiri_wrapper(&nokogiri)
  nokogiri.call 
rescue
  puts "error in Nokogiri..retry"
  sleep 1
  retry
end

使い方

doc = nokogiri_wrapper { Nokogiri::HTML.parse(open(url)) }

ちょっとマシ版

def open_uri_error_retry(&nokogiri_process)
  retry_count = 0
  begin
    result = yield
  rescue OpenURI::HTTPError, Errno::ECONNRESET, Errno::ETIMEDOUT => ex
    if retry_count <= 5
      log.error "#{ex.message} retry..."
      sleep 1
      retry
    else
      log.error ex.message
    end
  rescue => ex
    log.error ex
  end
  result
end

使い方

doc = open_uri_error_retry { Nokogiri::HTML.parse(open(url)) }



以上の内容はhttps://riocampos-tech.hatenablog.com/entry/20140902/wrapping_nokogiri_for_retryより取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14