最大で一定時間実行される 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
これまでのところ、上記のコードでエミュレートしようとしているタイマー ( https://github.com/tarcieri/timers )と呼ばれる tarcieri の gem を見つけましたが、私の実装では期待どおりの動作が得られません。これは、私の作業がそれよりも長くかかる場合、ループが 5 秒後に次の反復に進むためのものです。何か案は?