ruby中的Timer怎么用的?比如我想定时开始运行某段程序...
我想要设置一个定时器,在N秒后开始运行程序...
ruby里面有一个Timer类.
t_proc = proc do |sender|
p "put out "
end
t = Timer.new
t.on_timer = t_proc
t.interval = 1000
我仿照里面的小例子写的代码 ,
可是他一直输出 put out
不停下来.....
ruby里还有什么方法吗? 实现定时开始运行 和 取消(取消等待运行程序定时器)
[解决办法]
def background_run_at(time)
fork do
sleep(1) until Time.now > = time
yield
end
end
上面的代码实现在时间为time时执行block中的代码,比如:
noon = Time.local(today.year, today.month, today.day, 12, 0, 0)
background_run_at(noon) { puts "中午执行此方法 " }