open-uriにtimeout(タイムアウト/時間制限)を追加する[Ruby] 2012-12-16 Tweet Open-URIでデータを取得する際に、一定時間以上取得できない場合に問い合わせを諦めるための制御です。ごくごくシンプルなプログラムですが、個人的によく使うのでメモ。 🏀 ソースコードソースコードは以下のとおり。 require 'open-uri'require 'resolv-replace'require 'timeout'TIME_OUT = 3begin timeout(TIME_OUT) { open(URI.encode(url), "r", {:ssl_verify_mode=>OpenSSL::SSL::VERIFY_NONE}) }rescue TimeoutError => e # timeout時の例外処理rescue => e # timeout以外の例外処理end resolv-replaceライブラリ: ホスト名解決にresolvライブラリを使うようにする(DNS検索でのタイムアウトを実現するため) resolvライブラリ: DNSと連携した名前解決のためのライブラリ TimeoutError: タイムアウト時のエラー 🍣 参考リンクopen-uriにtimeoutを設定する方法 | Memorandum 🖥 VULTRおすすめ 「VULTR」はVPSサーバのサービスです。日本にリージョンがあり、最安は512MBで2.5ドル/月($0.004/時間)で借りることができます。4GBメモリでも月20ドルです。 最近はVULTRのヘビーユーザーになので、「ここ」から会員登録してもらえるとサービス開発が捗ります! 📚 おすすめの書籍