From 6bae49ee3be7e0f1cc95eb45c7dbfbc1fe414a63 Mon Sep 17 00:00:00 2001 From: qiminbao Date: Mon, 29 Sep 2025 20:13:15 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AD=96=E7=95=A5=E8=84=9A=E6=9C=AC=E6=89=A7?= =?UTF-8?q?=E8=A1=8C=E8=BF=94=E5=9B=9E=E6=95=B0=E6=8D=AE=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../task/SpecificTimeTaskService.java | 51 ++++++++----------- .../client/service/impl/AgentServiceImpl.java | 2 +- 2 files changed, 23 insertions(+), 30 deletions(-) diff --git a/src/main/java/com/tongran/agent/client/scheduler/task/SpecificTimeTaskService.java b/src/main/java/com/tongran/agent/client/scheduler/task/SpecificTimeTaskService.java index 8c668b3..47622b5 100644 --- a/src/main/java/com/tongran/agent/client/scheduler/task/SpecificTimeTaskService.java +++ b/src/main/java/com/tongran/agent/client/scheduler/task/SpecificTimeTaskService.java @@ -1,7 +1,5 @@ package com.tongran.agent.client.scheduler.task; -import cn.hutool.core.collection.CollectionUtil; -import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; import com.tongran.agent.client.core.enums.MsgEnum; import com.tongran.agent.client.core.session.SessionManager; @@ -13,7 +11,6 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.io.IOException; import java.time.LocalDateTime; -import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Objects; @@ -75,10 +72,8 @@ public class SpecificTimeTaskService { // 实现你的业务逻辑 try { System.out.println("处理业务: " + request.getTaskData()); - - List list = new ArrayList<>(); + String key = request.getTaskName()+"-"+System.currentTimeMillis(); for (String command : request.getTaskData()) { - JSONObject json = new JSONObject(); if(StringUtils.equals(request.getDataType(), MsgEnum.Agent版本更新应答.getValue())){ try { System.out.println("重启进程已启动,当前服务退出"); @@ -97,34 +92,32 @@ public class SpecificTimeTaskService { cmd, 100, TimeUnit.SECONDS); future.thenAccept(result -> { - if (result.isSuccess()) { - System.out.println("脚本执行成功"); - System.out.println("[成功resOut] " + result.getOutput()); - json.put("command",command); - json.put("resOut",result.getOutput()); - } else { - System.out.println("脚本执行失败"); - System.out.println("[失败resOut] " + result.getOutput()); - json.put("command",command); - json.put("resOut",result.getOutput()); + JSONObject jsonObject = new JSONObject(); + jsonObject.put("command", command); + jsonObject.put("resOut", result.getOutput()); + System.out.println("JSON: " + jsonObject.toJSONString()); // 注意:toJSONString() + + JSONObject json = new JSONObject(); + json.put("resCode",1); + json.put("resMsg", ""); + json.put("result", jsonObject.toJSONString()); + Message message = Message.builder().clientId(request.getClientId()).dataType(request.getDataType()).data(jsonObject.toJSONString()).build(); + if (Objects.nonNull(sessionManager.getSessionById(request.getClientId()))) { + System.out.println("发送执行结果: " + json.toJSONString()); // 注意:toJSONString() + sessionManager.writeAndFlush(sessionManager.getSessionById(request.getClientId()).getChannel(), message); } }).exceptionally(ex -> { System.err.println("执行失败: " + ex.getMessage()); - json.put("command",command); - json.put("resOut","Policy execute filed"); + JSONObject json = new JSONObject(); + json.put("resCode",0); + json.put("resMsg", "执行失败:Policy execute filed"); + json.put("result", ""); + Message message = Message.builder().clientId(request.getClientId()).dataType(request.getDataType()).data(json.toJSONString()).build(); + if (Objects.nonNull(sessionManager.getSessionById(request.getClientId()))) { + sessionManager.writeAndFlush(sessionManager.getSessionById(request.getClientId()).getChannel(), message); + } return null; }); - list.add(json.toString()); - } - } - if(CollectionUtil.isNotEmpty(list)){ - JSONObject json = new JSONObject(); - json.put("resCode",1); - json.put("resMsg", ""); - json.put("result", JSON.toJSONString(list)); - Message message = Message.builder().clientId(request.getClientId()).dataType(request.getDataType()).data(json.toString()).build(); - if (Objects.nonNull(sessionManager.getSessionById(request.getClientId()))) { - sessionManager.writeAndFlush(sessionManager.getSessionById(request.getClientId()).getChannel(), message); } } // 调用其他服务等 diff --git a/src/main/java/com/tongran/agent/client/service/impl/AgentServiceImpl.java b/src/main/java/com/tongran/agent/client/service/impl/AgentServiceImpl.java index 3e46227..02ffbcc 100644 --- a/src/main/java/com/tongran/agent/client/service/impl/AgentServiceImpl.java +++ b/src/main/java/com/tongran/agent/client/service/impl/AgentServiceImpl.java @@ -807,7 +807,7 @@ public class AgentServiceImpl implements AgentService { if(policy.getMethod() == 1){ SpecificTimeRequest request = SpecificTimeRequest.builder() .taskId("") - .taskName("") + .taskName(policy.getPolicyName()) .taskData(policy.getCommands()) .specificDateTime(AgentUtil.toLocalDateTime(policy.getPolicyTime(),true)) .clientId(clientId)