私はこのようなルビーコードを持っています:
result1 = function_1(params)
result2 = function_2(params)
result3 = function_3(params)
ただし、一部の機能は動作に時間がかかりすぎる場合があります(この機能はインターネット接続速度によって異なります)。5秒以上かかる場合は、関数の実行を終了する必要があります。ルビーウェイでどうすればいいですか?
require 'timeout'
timeout_in_seconds = 20
begin
Timeout::timeout(timeout_in_seconds) do
#Do something that takes long time
end
rescue Timeout::Error
# Too slow!!
end
タイムアウトを使用できます。
require 'timeout'
status = Timeout::timeout(5) {
# Something that should be interrupted if it takes too much time...
}