From 5a679a1a8e6d87d04590b0d2328237c96374bb94 Mon Sep 17 00:00:00 2001 From: zeaslity Date: Sun, 26 Feb 2023 15:04:40 +0800 Subject: [PATCH] [agent][executor]- bug - 11 --- .../executor/thread/CommandExecLogCache.java | 38 ++++++++++--------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/agent/src/main/java/io/wdd/agent/executor/thread/CommandExecLogCache.java b/agent/src/main/java/io/wdd/agent/executor/thread/CommandExecLogCache.java index c6b1c2f..ef73000 100644 --- a/agent/src/main/java/io/wdd/agent/executor/thread/CommandExecLogCache.java +++ b/agent/src/main/java/io/wdd/agent/executor/thread/CommandExecLogCache.java @@ -34,15 +34,15 @@ public class CommandExecLogCache { */ private static final ArrayList EmptyCommandLog = new ArrayList<>(); // 存储命令执行缓存日志 - private static HashMap> CachedCommandLogMap = new HashMap<>(); + private static final HashMap> CachedCommandLogMap = new HashMap<>(); /** * 存储每一个任务对应的 日志读取BufferedReader */ - private static HashMap CommandLogBufferedReaderMap = new HashMap<>(); + private static final HashMap CommandLogBufferedReaderMap = new HashMap<>(); /** * 存储每一个任务对应的 日志读取 InputStream Reader */ - private static HashMap CommandLogInputReaderMap = new HashMap<>(); + private static final HashMap CommandLogInputReaderMap = new HashMap<>(); @Resource SimpleStreamSender simpleStreamSender; @@ -132,8 +132,10 @@ public class CommandExecLogCache { streamKey, bufferedReader ); - CommandLogInputReaderMap.put(streamKey, - inputStreamReader); + CommandLogInputReaderMap.put( + streamKey, + inputStreamReader + ); log.debug("开始获取bufferedReader中每一行的内容"); // !! 此处会阻塞 @@ -167,21 +169,24 @@ public class CommandExecLogCache { inputStreamReader ); - try { + // 关闭command的输出流 + process + .getInputStream() + .close(); - // 关闭command的输出流 - process - .getInputStream() - .close(); + inputStreamReader.close(); - inputStreamReader.close(); + bufferedReader.close(); - bufferedReader.close(); + } catch (IOException e) { + throw new RuntimeException(e); + } finally { - } catch (IOException e) { - throw new RuntimeException(e); - } + CommandLogBufferedReaderMap.remove(streamKey); + CommandLogInputReaderMap.remove(streamKey); + + } } @@ -203,8 +208,7 @@ public class CommandExecLogCache { .writerWithDefaultPrettyPrinter() .writeValueAsString(cachedCommandLog); - System.out.println("s = " + s); - + System.out.println(s); } catch (JsonProcessingException e) { throw new RuntimeException(e);