BLOGTIMES
2009/08/10

RubyでデフォルトのHTTPタイムアウトをのばす

  ruby 
このエントリーをはてなブックマークに追加

時間がかかる処理をnet/httpを使って投げるとタイムアウト例外が発生してしまうので、デフォルトのタイムアウト値を変更する事ができないかと思ったら、こんな裏技的な方法があったとは。これはRubyがオープンクラスだからできる芸当だよなぁ。

Ruby で HTTP のタイムアウト秒数を延ばす :【脱獄逃亡中】

これを 120秒 に変えたい場合、以下のようにすると出来るようだ。
class Net::HTTP def initialize_new(address, port = nil) initialize_old(address, port) @read_timeout = 120 end alias :initialize_old :initialize alias :initialize :initialize_new end

net/httpはこれ以外にも例外のハンドリング*1でもハマりやすかったりとちょっとクセがあるので要注意です。


トラックバックについて
Trackback URL:
お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/3154
Trackbacks
このエントリにトラックバックはありません
Comments
愛のあるツッコミをお気軽にどうぞ。[policy]
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
とおりすがり (2009/08/13 19:14) <%HatenaAuth()%>

おもしろいけど、そもそもその辺を自由に設定できるクラスメソッドなりインスタンスメソッドなりがあるべきだよなー。

hsur (2009/08/13 19:17) <%HatenaAuth()%>

そうなんですよねぇ。
本当はこんなトリッキーなことしなくて済めばベストなんですけど。

Comments Form

コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。

OpenID を使ってログインすることができます。

Identity URL: Yahoo! JAPAN IDでログイン