Ruby中的时间限制计算

Pet*_*ter 4 ruby multithreading

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

loop do
  for_up_to_10_seconds do
    # something
  end
end
Run Code Online (Sandbox Code Playgroud)

sev*_*rin 7

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

loop do
  Timeout.timeout(10) do
    # something
  end
end
Run Code Online (Sandbox Code Playgroud)