From e4bb3f4a06ec0ef42a0278736a278b186968a39d Mon Sep 17 00:00:00 2001 From: zeaslity Date: Sun, 26 Feb 2023 16:20:08 +0800 Subject: [PATCH] =?UTF-8?q?[agent][executor]-=E5=AE=8C=E6=88=90=E5=BA=95?= =?UTF-8?q?=E5=B1=82=E5=91=BD=E4=BB=A4=E6=89=A7=E8=A1=8C=E6=9E=B6=E6=9E=84?= =?UTF-8?q?=E7=9A=84=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../executor/thread/CommandExecLogCache.java | 30 +++++-------------- 1 file changed, 8 insertions(+), 22 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 b694ea7..7002acd 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 @@ -43,10 +43,7 @@ public class CommandExecLogCache { * 存储每一个任务对应的 日志读取BufferedReader */ private static final HashMap CommandLogBufferedReaderMap = new HashMap<>(); - /** - * 存储每一个任务对应的 日志读取 InputStream Reader - */ - private static final HashMap CommandLogInputReaderMap = new HashMap<>(); + /** * 固定单进程,用于缓存命令执行日志,关闭命令输入管道 @@ -140,23 +137,17 @@ public class CommandExecLogCache { log.debug("doCacheLog 开始从process的结果中获取日志缓存"); // read from input stream and store to the cacheArrayList - InputStreamReader inputStreamReader = new InputStreamReader( - process.getInputStream() - ); - BufferedReader bufferedReader = new BufferedReader( - inputStreamReader - ); + BufferedReader bufferedReader = new BufferedReader( + new InputStreamReader( + process.getInputStream() + ) + ); // 缓存这个 日志读取器 CommandLogBufferedReaderMap.put( streamKey, bufferedReader ); - CommandLogInputReaderMap.put( - streamKey, - inputStreamReader - ); - // 使用统一进程执行缓存和关停动作 LogCacheDaemonThread.submit( () -> { @@ -185,13 +176,11 @@ public class CommandExecLogCache { public void StopExecLogBufferedReader(String streamKey, Process process) { BufferedReader bufferedReader = CommandLogBufferedReaderMap.get(streamKey); - InputStreamReader inputStreamReader = CommandLogInputReaderMap.get(streamKey); log.debug( - "开始关停任务 [ {} ]对应的日志读取 BufferedReader {} InputStream Reader {}", + "开始关停任务 [ {} ]对应的日志读取 BufferedReader {}", streamKey, - bufferedReader, - inputStreamReader + bufferedReader ); LogCacheDaemonThread.submit( @@ -202,8 +191,6 @@ public class CommandExecLogCache { .getInputStream() .close(); - inputStreamReader.close(); - bufferedReader.close(); } catch (IOException e) { @@ -215,7 +202,6 @@ public class CommandExecLogCache { ); CommandLogBufferedReaderMap.remove(streamKey); - CommandLogInputReaderMap.remove(streamKey); } }); }