У меня есть класс, который запускает и управляет рабочей нитью. Нить выглядит примерно так:Каковы последствия для работы нескольких часов в Ruby-потоке?
DELAY = 6 * 60 * 60 # Sleep 6 hours by default
Thread.new do
do_some_work()
sleep(DELAY)
end
do_some_work
не очень ресурсоемкий, занимает около 5 секунд, чтобы завершить в среднем; но он не должен блокироваться, и есть вероятность для дросселирования ошибок, если я часто его вызываю.
Я не уверен, что последствия спать несколько часов в рубиновой нити. Должен ли я ожидать каких-либо серьезных штрафных санкций за использование этого кода? Вероятно, стоит отметить, что я не могу использовать задачу cron для этой задачи.
Обычно это знак того, что вам нужен правильный планировщик задач, а не какой-то поток, который спит в течение совершенно произвольного времени. 'cron' также является хорошим вариантом здесь. – tadman
'cron' была моей первой мыслью; к сожалению, я не могу использовать его в этой ситуации. Я благодарен за ответ. – jamesberlage