我想在Ruby中运行一个任务(比如说)10秒,并且如果花费更长时间就杀死该任务。这是为了防止挂起外部进程。实现这个的最佳方法是什么?特别是,我如何编写下面的函数for_up_to_10_seconds
?
loop do
for_up_to_10_seconds do
# something
end
end
答案 0 :(得分:7)
您正在寻找标准库中的Timeout类:http://www.ruby-doc.org/core/classes/Timeout.html
loop do
Timeout.timeout(10) do
# something
end
end