package com.dy.rtuMw; import com.dy.common.mw.protocol.Command; import com.dy.common.mw.protocol.CommandType; import com.dy.rtuMw.server.local.CommandInnerDeaLer; import com.dy.rtuMw.server.local.localProtocol.CodeLocal; import lombok.extern.slf4j.Slf4j; /** * @Author: liurunyu * @Date: 2024/8/6 9:51 * @Description 程序(控制台)关闭处理钩子类 */ @Slf4j public class ServerShutDownHook { public static void OnShutDown(){ Runtime.getRuntime().addShutdownHook(new Thread(){ @Override public void run(){ try{ // 确保这段代码尽可能快速执行,避免影响JVM的关闭 log.info("程序(控制台)关闭钩子类执行"); Command com = new Command() ; com.id = Command.defaultId ; com.code = CodeLocal.stopTcpSv ; com.type = CommandType.innerCommand ; new CommandInnerDeaLer().deal(com) ; //Thread.sleep(100L);//实测不执行 log.info("关闭程序前,关闭了TCP服务"); }catch (Exception e){ log.error("程序(控制台)关闭钩子发生异常", e); } } }); } }