我遇到了在关闭 java 应用程序时调用的关闭挂钩功能。
我正在使用 SIGTERM 信号在 linux Box 上关闭我的 java 进程。
在关机时,我想做一些磁盘 I/O(保留一些对象)并关闭打开的文件缓冲区(最多可能需要 1 分钟)
您能否建议关闭挂钩是否是此用例的安全/可靠机制
如果有更好的选择,请提出建议。
我遇到了在关闭 java 应用程序时调用的关闭挂钩功能。
我正在使用 SIGTERM 信号在 linux Box 上关闭我的 java 进程。
在关机时,我想做一些磁盘 I/O(保留一些对象)并关闭打开的文件缓冲区(最多可能需要 1 分钟)
您能否建议关闭挂钩是否是此用例的安全/可靠机制
如果有更好的选择,请提出建议。
该设计文档没有说明允许关闭挂钩线程运行多长时间。但是在字里行间阅读(有一个事实Runtime.halt
,我认为你是安全的。)
现在请记住,您依赖的其他一些框架可能已经同时关闭,因此您的钩子不应依赖于您自己的代码以外的任何东西。
您可能还会发现另一个感兴趣的 SO 问题:如何优雅地停止 java 进程?.