Ruby睡到特定的时间

时间:2013-10-18 11:02:57

标签: ruby sleep

我怎么写,我的代码在5秒内没有睡觉,但直到机器上的某个时间到达。

不是这样:

sleep(5)

但是像:

now = DateTime.Now
while now != "14:40:03"
  sleep(0.5)
end

怎么做是正确的?

2 个答案:

答案 0 :(得分:18)

require "time"
sleep(Time.parse("14:40:03") - Time.now)

答案 1 :(得分:1)

或使用Rufus Scheduler

https://github.com/jmettraux/rufus-scheduler

来自OpenWFEru / ruote项目。

require 'rubygems'
require 'rufus-scheduler'

scheduler = Rufus::Scheduler.new

scheduler.in '20m' do
  #do something
end

这提供了真正的被动等待,无负载。