私は、ワーカースレッドを開始および管理するクラスを持っています。 ;Rubyスレッドで複数時間スリープ状態になるとパフォーマンスにどのような影響がありますか?
DELAY = 6 * 60 * 60 # Sleep 6 hours by default
Thread.new do
do_some_work()
sleep(DELAY)
end
do_some_work
が平均的に完了するまでに約5秒を取って、非常にリソース集中型ではありません:スレッドが次のようになりますしかし、ブロックするべきではありませんし、私はそれを頻繁に呼び出す場合、エラーを抑制する可能性があります。
Rubyスレッドで何時間も眠っていることの意味がわかりません。このコードを使用すると、重大なパフォーマンス上の違反が予想されますか?私はこの仕事のためにcronジョブを使うことができないことに気付くでしょう。
これは通常、完全に任意の時間スリープするスレッドではなく、適切なタスクスケジューラが必要なサインです。 'cron'も良いオプションです。 – tadman
'cron'は私の最初の考えでした。残念ながら、私はこの状況でそれを使用することはできません。しかし、私は答えを感謝します。 – jamesberlage