2013-10-18 8 views
5

私のコードは、例えば5秒間スリープ状態ではなく、マシンのある時間が経過するまで書き込むことができます。Ruby sleep to specific time

ない:

sleep(5) 

何かのように:

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

それはどのように行うには正しいのですか?

+1

私はあなたが特定の時間にいくつかの仕事をしたいと思いますか?ユースケースは何ですか?なぜcronジョブを使用しないのですか? – Lavixu

答えて

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

それともOpenWFEru /ルーテプロジェクトから

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

ルーファススケジューラを使用しています。

require 'rubygems' 
require 'rufus-scheduler' 

scheduler = Rufus::Scheduler.new 

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

これは、実際の受動的な待機、無負荷を提供します。

+0

これまでに試してみましたが、http://stackoverflow.com/questions/19447467/rufus-scheduler-time-format – brabertaser19