Можно ли использовать отключающие крючки для чуть более длинной задачи
Я сталкивался с функциональностью ловушек выключения, которая вызывается, когда приложение Java закрывается.
Я использую сигнал SIGTERM, чтобы остановить мой процесс Java на Linux Box.
И во время выключения я хочу сделать дисковый ввод-вывод (сохраняя некоторые объекты) и закрыть буфер открытого файла (это может занять до 1 минуты)
Можете ли вы посоветовать, являются ли отключающие крюки безопасным / надежным механизмом для этого случая использования?
Если есть лучшая альтернатива, пожалуйста, предложите.
1 ответ
Этот проектный документ ничего не говорит о том, как долго разрешается запускать поток крюка отключения. Но чтение между строк (тот факт, что есть Runtime.halt
Я думаю ты в безопасности.)
Теперь имейте в виду, что некоторые другие фреймворки, на которые вы полагаетесь, могли одновременно закрываться, поэтому ваш хук не должен полагаться ни на что, кроме вашего собственного кода.
Вы также можете найти другой интересный вопрос: Как изящно остановить процесс Java?,