我正在写一个Ruby脚本,并希望这样的行为:什么是一个简单的方法来做一个计时器?
every 15 seconds do
callback
end
我会怎么做呢?
快速搜索没有显示许多库;我应该使用线程吗?因为我的Ruby脚本将是基本的,所以我想要这个基础。
我正在写一个Ruby脚本,并希望这样的行为:什么是一个简单的方法来做一个计时器?
every 15 seconds do
callback
end
我会怎么做呢?
快速搜索没有显示许多库;我应该使用线程吗?因为我的Ruby脚本将是基本的,所以我想要这个基础。
你可以随时拨打sleep
:
loop do
sleep 15
callback
end
您还可以检出EventMachine的的PeriodicTimer类。我过去曾经成功地使用过这个功能:http://eventmachine.rubyforge.org/EventMachine/PeriodicTimer.html
尽管如此,EventMachine可能会过度杀伤您的需求。
希望我不会那样做,但我想这似乎是要走的路。所以解决方案是创建一个单独的线程来运行回调,并在我需要该任务时启动线程。很酷,谢谢! – 2012-01-28 06:48:13
你的用例具体是什么?如果这是一个不需要并行执行任何操作的同步脚本,则调用sleep应该没问题。否则,还有其他方法可以尝试。 EventMachine是一个(正如Ryan在另一个回答中提到的);你也可以尝试重构你的脚本在一个简单的'loop'中运行并手动检查'Time.now'。 – 2012-01-29 09:28:04