虚拟机重启命令

segment2.0
linrf 2 years ago
parent c3a6a74d6f
commit 09db707b8b

@ -5,7 +5,6 @@ import com.docus.core.util.Func;
import com.docus.core.util.ListUtils; import com.docus.core.util.ListUtils;
import com.docus.core.util.json.JSON; import com.docus.core.util.json.JSON;
import com.docus.server.common.CommMsg; import com.docus.server.common.CommMsg;
import com.docus.server.common.MsgConstants;
import com.docus.server.common.netty.client.NettyClient; import com.docus.server.common.netty.client.NettyClient;
import com.docus.server.common.netty.server.CollectorChannelCacheMap; import com.docus.server.common.netty.server.CollectorChannelCacheMap;
import com.docus.server.common.utils.StartUpExeUtils; import com.docus.server.common.utils.StartUpExeUtils;
@ -20,13 +19,13 @@ import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import java.io.IOException;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import static com.docus.server.common.MsgConstants.COLLECTOR_RESTART; import static com.docus.server.common.MsgConstants.*;
import static com.docus.server.common.MsgConstants.HAS_COLLECTOR_COUNT;
@Slf4j @Slf4j
@AllArgsConstructor @AllArgsConstructor
@ -45,28 +44,28 @@ public class ClientHandler extends SimpleChannelInboundHandler<CommMsg<Serializa
log.info("======== 【终端客户端-收到调度器消息】, 消息时间={}, 消息类型={}, 消息内容={}", messageTime, messageType, messageContent + " ======== "); log.info("======== 【终端客户端-收到调度器消息】, 消息时间={}, 消息类型={}, 消息内容={}", messageTime, messageType, messageContent + " ======== ");
switch (messageType) { switch (messageType) {
case MsgConstants.TERMINATOR_RESTART: case TERMINATOR_RESTART:
terminatorRestart(messageContent); terminatorRestart(messageContent);
break; break;
case MsgConstants.COLLECTOR_RESTART: case COLLECTOR_RESTART:
collectorRestart(messageContent); collectorRestart(messageContent);
break; break;
case MsgConstants.VIRTUAL_RESTART: case VIRTUAL_RESTART:
virtualRestart(messageContent); virtualRestart(messageContent);
break; break;
case MsgConstants.UPDATE_COLLECTOR_FILE: case UPDATE_COLLECTOR_FILE:
updateCollectorFile(messageContent); updateCollectorFile(messageContent);
break; break;
case MsgConstants.UPDATE_COLLECTOR_CONFIG: case UPDATE_COLLECTOR_CONFIG:
updateCollectorConfig(messageContent); updateCollectorConfig(messageContent);
break; break;
case MsgConstants.SCH_DISTRIBUTE_TASKS: case SCH_DISTRIBUTE_TASKS:
schDistributeTasks(commMsg, messageContent); schDistributeTasks(commMsg, messageContent);
break; break;
case MsgConstants.HAS_VALID_COLLECTOR: case HAS_VALID_COLLECTOR:
hasValidCollector(messageContent); hasValidCollector(messageContent);
break; break;
case MsgConstants.HAS_COLLECTOR_COUNT: case HAS_COLLECTOR_COUNT:
hasCollectorCount(context, messageContent); hasCollectorCount(context, messageContent);
break; break;
default: default:
@ -162,8 +161,15 @@ public class ClientHandler extends SimpleChannelInboundHandler<CommMsg<Serializa
log.info("【终端客户端-收到调度器消息】收到更新采集器文件命令,内容={}", messageContent); log.info("【终端客户端-收到调度器消息】收到更新采集器文件命令,内容={}", messageContent);
} }
private void virtualRestart(String messageContent) { private void virtualRestart(String messageContent) throws IOException {
log.info("【终端客户端-收到调度器消息】收到虚拟机重启命令,内容={}", messageContent); log.info("【终端客户端-收到调度器消息】收到虚拟机重启命令,内容={}", messageContent);
StartUpExeUtils.restartComputer();
CommMsg<Serializable> collectorRestartMsg = CommMsg.builder()
.content("重启虚拟机,操作成功!")
.messageTime(DateUtil.formatDateTime(new Date()))
.messageType(VIRTUAL_RESTART)
.build();
nettyClient.getCollectorChannelCacheMap().writeAndFlush(messageContent, collectorRestartMsg);
} }
private void collectorRestart(String messageContent) { private void collectorRestart(String messageContent) {
@ -186,7 +192,7 @@ public class ClientHandler extends SimpleChannelInboundHandler<CommMsg<Serializa
if (isExistProcess) { if (isExistProcess) {
boolean result = StartUpExeUtils.startUpExe(saveCollectorPackagePath + collectorId + "\\collector\\" + processName, processName); boolean result = StartUpExeUtils.startUpExe(saveCollectorPackagePath + collectorId + "\\collector\\" + processName, processName);
CommMsg<Serializable> collectorRestartMsg = CommMsg.builder() CommMsg<Serializable> collectorRestartMsg = CommMsg.builder()
.content(result) .content(result)
.messageTime(DateUtil.formatDateTime(new Date())) .messageTime(DateUtil.formatDateTime(new Date()))
.messageType(COLLECTOR_RESTART) .messageType(COLLECTOR_RESTART)

@ -10,11 +10,17 @@ public class StartUpExeUtils {
// startUpExeOnly("H:\\tools\\Navicat Premium 12免安装\\Navicat Premium 12\\navicat.exe"); // startUpExeOnly("H:\\tools\\Navicat Premium 12免安装\\Navicat Premium 12\\navicat.exe");
// killExeOnly("navicat.exe"); // killExeOnly("navicat.exe");
startUpExe("H:\\tools\\Navicat Premium 12免安装\\Navicat Premium 12\\navicat.exe", "navicat.exe"); // startUpExe("H:\\tools\\Navicat Premium 12免安装\\Navicat Premium 12\\navicat.exe", "navicat.exe");
restartComputer();
} }
private static boolean startExeStatus = true;//exe启动状态 private static boolean startExeStatus = true;//exe启动状态
//重启虚拟机
public static void restartComputer() throws IOException {
Runtime.getRuntime().exec("shutdown /r /t 0");
}
//仅启动exe客户端不检查进程 //仅启动exe客户端不检查进程
public static void startUpExeOnly(String exePath) throws IOException { public static void startUpExeOnly(String exePath) throws IOException {
if (exePath != "") { if (exePath != "") {

Loading…
Cancel
Save