open-uriでhttpリクエストを送信する際のtimeout設定
以下のようにしてoprn-uriを使って時間のかかるAPIにアクセスした際に[[Net::ReadTimeout]]エラーになってしまう現象が発生した。
require 'open-uri'
res = open(paapi_sale_list_url)
そこで以下のようにしてモンキーパッチを当ててtimeout時間を15分に変更。
require 'open-uri'
class Net::HTTP
def initialize_new(address, port = nil)
initialize_old(address, port)
@read_timeout = 900 # timeoutを15分に変更
end
alias :initialize_old :initialize
alias :initialize :initialize_new
end
res = open(paapi_sale_list_url)
これでtimeoutはしなくなった。