我正试着每隔30秒关闭一次检查。我还没有找到一个清晰的方法来处理ruby。正在尝试类似的操作:

until counter == 30
  sleep 1
  if condition
    do something
    break
   else
     counter +=1
end

类似的问题是它必须使用sleep,这会使线程在其轨道上停留整整一秒钟。有没有另一种方法可以在不使用睡眠的情况下达到与上述类似的效果有没有办法在基于时间的间隔内进行循环?

最佳答案

你可以用这些线来近似你正在寻找的东西:

now = Time.now
counter = 1
loop do
  if Time.now < now + counter
    next
  else
    puts "counting another second ..."
  end
  counter += 1
  break if counter > 30
end

关于ruby - 在一定时间间隔内或满足条件时执行循环,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15892738/

10-11 22:40
查看更多