Ruby中的时间限制计算

时间:2010-02-16 08:34:17

标签: ruby multithreading

我想在Ruby中运行一个任务(比如说)10秒,并且如果花费更长时间就杀死该任务。这是为了防止挂起外部进程。实现这个的最佳方法是什么?特别是,我如何编写下面的函数for_up_to_10_seconds

loop do
  for_up_to_10_seconds do
    # something
  end
end

1 个答案:

答案 0 :(得分:7)

您正在寻找标准库中的Timeout类:http://www.ruby-doc.org/core/classes/Timeout.html

loop do
  Timeout.timeout(10) do
    # something
  end
end