我将如何在 Ruby 中编写代码块,如果长时间没有输入用户输入x
代码块,它将超时或退出?
我没有一个半完成的脚本来更好地传达我的问题,甚至没有伪代码概念算法。
您可以使用标准库中包含的超时模块。如果要rescue
超时,它将引发Timeout::Error
。
require 'timeout'
x = 10
begin
status = Timeout::timeout(x) {
printf "Input: "
gets
}
puts "Got: #{status}"
rescue Timeout::Error
puts "Input timed out after #{x} seconds"
end
require "timeout"
Timeout.timeout(x) do
s = gets
...
end