このコードを使用して、関数のタイムアウトを導入できます
require 'timeout'
Timeout::timeout(timeout_period) do
run_some_code
rescue => err
do_something_with err
# and maybe the below?
raise
end
my_timeout
そのような目的で再利用できる別の関数を作成するにはどうすればよいですか? タイムアウトが発生した場合に呼び出された関数を再度実行する必要があることを指定できるようにしたいと考えています。
それで、私は次のように呼び出しmy_timeout
ますmy_timeout('function name',int_how_many_times_to repeat_if times_out)
- my_timeout("restart_db2_server",5)
- my_timeout("restart_eduserver",3)
- my_timeout("run_test",0)
ruby 1.9.3p194 (2012-04-20) [i386-mingw32]
Windows7で使っています