gpt4 book ai didi

java - 断电时优雅地关闭应用程序

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:21:54 25 4
gpt4 key购买 nike

我知道使用 UPS 来防止服务器立即关机的重要性。我如何在 Java 应用程序中监听此类事件?

假设我的 UPS 在断电后会继续满载运行 5 分钟。他们的服务器将继续运行,但我的应用程序如何知道是时候开始正常关闭了?

这个特定的应用程序主要处理客户端到数据库的事务。我主要担心服务器在 mysql 事务中间立即断电的情况下损坏的数据。以下几点是处理电源情况的正确方法吗?

  • 停电了。 UPS 电池模式。应用检测到这一点。
  • 应用程序以某种方式阻止所有传入请求(任何关于这样做的建议都会有所帮助)
  • 在几分钟内,所有正在进行的交易都应该完成。
  • 关机申请
  • 如果电池没电了,服务器就会宕机...等待恢复。

有没有办法在电源恢复时自动重启服务器和应用程序,还是必须手动完成?

最佳答案

处理 UPS 可能必须在操作系统级别处理,使用 SNMP 或系统脚本等监督工具。

如果您在线查看,您可能会发现许多脚本在从 UPS 接收到电源故障事件时执行某些操作。

您必须向您的 JVM PID 发送一个 QUIT 信号(在 Unix/Linux 上),并且在 JVM 端您可以使用方法 Runtime.addShutdownHook 注册一个关闭 Hook 。

如果使用像 Spring 这样的框架,它肯定已经注册了一些东西,并且会在配置后调用 bean 的销毁方法。

关于java - 断电时优雅地关闭应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16591790/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com