我怎么能写,我的代码睡眠不是例如 5 秒,而是直到达到机器上的某个时间。
不是这样:
sleep(5)
但类似:
now = DateTime.Now
while now != "14:40:03"
sleep(0.5)
end
怎么做是正确的?
require "time"
sleep(Time.parse("14:40:03") - Time.now)
或者使用 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
这提供了真正的被动等待,无负载。