我正在创建一个Ruby(MRI 1.9.3)循环,最多运行一段时间,一旦这个时间到了,它就会进入循环的下一次迭代。有没有办法编写一个运行一次迭代达最大设定时间的Ruby循环?
例如,这是我希望实现:
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的宝石叫定时器(https://github.com/tarcieri/timers)这就是我想要的代码,模仿上面,但是我的实现并没有给出我期望的行为,如果我的工作需要更长时间,循环会在5秒后进入下一个迭代。有任何想法吗?