java - 关闭钩子(Hook)可以用于稍长的任务吗

标签 java shutdown-hook

我遇到过关闭钩子(Hook)功能,当java应用程序关闭时会调用该功能。

  • 我正在使用 SIGTERM 信号关闭 Linux Box 上的 java 进程。

  • 在关闭时,我想做一些磁盘 I/O(保留一些对象)并关闭打开的文件缓冲区(最多可能需要 1 分钟)

  • 您能否建议关闭 Hook 是否是此用例的安全/可靠机制

  • 如果有更好的选择,请提出。

最佳答案

这个design document没有说明允许关闭钩子(Hook)线程运行多长时间。但从字里行间看出来(事实上,有一个 Runtime.halt,我认为你是安全的。)

现在请记住,您依赖的一些其他框架可能已同时关闭,因此您的钩子(Hook)不应依赖于您自己的代码之外的任何其他框架。

您可能还会发现其他感兴趣的问题:How to stop java process gracefully? .

关于java - 关闭钩子(Hook)可以用于稍长的任务吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6525084/

相关文章:

Java 完成工作单元直到收到停止信号

java - 检测到 JVM 正在关闭

c# - 如何从 C# 正确关闭 java 应用程序

java - 为什么 JBoss 5.1 中 ShutdownHook 中的 java.util.Logger 并不总是打印到 server.log?

java - Akka 是否支持没有对象序列化的进程内消息传递?

java - 单独的哈希集以在多个线程上运行列表

java - 是否有在 Google App Engine 上运行的 Apache Shinding Java 版本的端口?

java - 我安装了 JRE 和 JDK 8,但在 Eclipse 中它显示 Java/JavaVirtualMachines/1.6.0 JDK。该怎么办?

java - HashMap 的奇怪序列化行为

java - servlet 过滤器销毁方法是否可以由关闭 Hook 调用,或者是否有更好的解决方案?