我遇到了关闭钩子的功能,当java应用程序关闭时会调用它。
我正在使用SIGTERM信号在linux Box上关闭我的java进程。
在关机时,我想做一些磁盘I / O(持久化某些对象)并关闭打开文件缓冲区(可能需要1分钟)
您能否告知关闭钩子是否是此用例的安全/可靠机制
如果有更好的选择,请提出建议。
答案 0 :(得分:3)
这个design document没有说明允许关闭钩子线程运行多长时间。但是在两行之间进行阅读(事实上有Runtime.halt
,我认为你是安全的。)
现在请记住,您依赖的其他一些框架可能已经同时关闭,因此您的钩子不应该依赖于您自己的代码以外的任何其他框架。
您可能还会发现其他感兴趣的问题:How to stop java process gracefully?。