根据时间从块中断

时间:2012-05-27 06:14:28

标签: ruby

我想跑一个街区60秒。到目前为止,我所提出的并没有按照需要突破这个障碍。

@start_time = Time.now
stream_some_data do |x| 
  # .. do something ...
  break if Time.now == @start_time + 60
end

2 个答案:

答案 0 :(得分:8)

Ruby的stdlib已经有了一个Timeout模块:

begin
  require "timeout"
  Timeout::timeout(60) do
    # all of the things...
  end
rescue Timeout::Error => e
end

答案 1 :(得分:3)

由于你不可能在开始的60秒后完全到达那条线,试试:

break if Time.now > @start_time + 60