Rails アプリで、open-uri
読み込みに最大 10 分かかる外部ファイルを開いています。
例:
dl_stream = open('http://wetten.overheid.nl/xml.php?regelingID=bwbr0020368')
ここで、1 分後に Ruby がタイムアウト エラーをスローします。ソースコードからこれを収集しました\net\protocol.rc
:
@read_timeout = 60
def rbuf_fill
begin
@rbuf << @io.read_nonblock(BUFSIZE)
rescue IO::WaitReadable
if IO.select([@io], nil, nil, @read_timeout)
retry
else
raise Timeout::Error
end
rescue IO::WaitWritable
# OpenSSL::Buffering#read_nonblock may fail with IO::WaitWritable.
# http://www.openssl.org/support/faq.html#PROG10
if IO.select(nil, [@io], nil, @read_timeout)
retry
else
raise Timeout::Error
end
end
end
アプリの設定で、このタイムアウト値を 15 分など、自分の状況により適した値に設定できると思いますが、どのように、どこで?