7

我怎么能写,我的代码睡眠不是例如 5 秒,而是直到达到机器上的某个时间。

不是这样:

sleep(5)

但类似:

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

怎么做是正确的?

4

2 回答 2

22
require "time"
sleep(Time.parse("14:40:03") - Time.now)
于 2013-10-18T11:53:09.543 回答
1

或者使用 Rufus 调度器

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

来自 OpenWFEru/ruote 项目。

require 'rubygems'
require 'rufus-scheduler'

scheduler = Rufus::Scheduler.new

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

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

于 2013-10-18T12:03:36.867 回答