我想创建一个Ruby(MRI 1.9.3)循环,最多运行一定时间,一旦时间到了,就会进入下一个循环迭代。
例如,我希望实现以下内容:
timer = Timer.new
while foo
timer.after 5 do # The loop on foo only gets to run for 5 seconds
next
end
# Do some work here
end
到目前为止,我发现了tarcieri的Timers gem(https://github.com/tarcieri/timers),这正是我试图在上面的代码中模拟的内容,但我的实现并没有给出我期望的行为,即如果我的工作时间超过5秒,则循环在5秒后进入下一次迭代。有什么想法吗?