我希望创建一个最多运行一段时间的 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
到目前为止,我发现了名为 Timers ( https://github.com/tarcieri/timers ) 的 tarcieri 的 gem,这是我在上面的代码中试图模拟的,但我的实现并没有给出我期望的行为,如果我的工作需要更长的时间,那么循环将在 5 秒后进入下一次迭代。有任何想法吗?