我有代码(运行时间在1到2秒之间),我希望每次计算机关闭时都可以运行该代码(将用户从另一台服务器上的另一系统注销)。
我已经尝试将其添加到ShutdownHook
中,但是给定线程的执行速度变慢-在执行所有命令之前,线程被杀死。
还尝试将其添加到finally语句中,但也无济于事。
在这种情况下,IYO的常规做法是什么?
多谢。
最佳答案
您将无法使其正常运行。只有在正常关闭JVM的情况下,才会调用ShutdownHook
。不正常的关闭包括操作系统终止进程,甚至断电。
在这种情况下,一种替代方法是在计算机和服务器之间维持“心跳”信号,如果断开该信号,则会使用户退出服务器。