私は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はあなたの必要に迫られているかもしれません。
私はそれをする必要はないことを望んでいたが、私はそれが行く方法だと思う。ですから、解決策は、コールバックを実行し、そのタスクが必要なときにスレッドを開始する別のスレッドを作成することです。クール、ありがとう! –
具体的なケースは何ですか?これが並行して何もする必要のない同期スクリプトの場合は、sleepを呼び出すのがうまくいくはずです。そうでなければ、あなたが試みることができる他のアプローチがあります。 EventMachineは1つです(Ryanが別の答えで言及したように)。あなたのスクリプトを単純な 'loop'の中で実行し、' Time.now'を手動でチェックするようにリファクタリングすることもできます。 –