[agent][executor]-完成底层命令执行架构的更改

This commit is contained in:
zeaslity
2023-02-26 16:20:08 +08:00
parent 2ba0f1f74f
commit e4bb3f4a06

View File

@@ -43,10 +43,7 @@ public class CommandExecLogCache {
* 存储每一个任务对应的 日志读取BufferedReader * 存储每一个任务对应的 日志读取BufferedReader
*/ */
private static final HashMap<String, BufferedReader> CommandLogBufferedReaderMap = new HashMap<>(); private static final HashMap<String, BufferedReader> CommandLogBufferedReaderMap = new HashMap<>();
/**
* 存储每一个任务对应的 日志读取 InputStream Reader
*/
private static final HashMap<String, InputStreamReader> CommandLogInputReaderMap = new HashMap<>();
/** /**
* 固定单进程,用于缓存命令执行日志,关闭命令输入管道 * 固定单进程,用于缓存命令执行日志,关闭命令输入管道
@@ -140,23 +137,17 @@ public class CommandExecLogCache {
log.debug("doCacheLog 开始从process的结果中获取日志缓存"); log.debug("doCacheLog 开始从process的结果中获取日志缓存");
// read from input stream and store to the cacheArrayList // 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( CommandLogBufferedReaderMap.put(
streamKey, streamKey,
bufferedReader bufferedReader
); );
CommandLogInputReaderMap.put(
streamKey,
inputStreamReader
);
// 使用统一进程执行缓存和关停动作 // 使用统一进程执行缓存和关停动作
LogCacheDaemonThread.submit( LogCacheDaemonThread.submit(
() -> { () -> {
@@ -185,13 +176,11 @@ public class CommandExecLogCache {
public void StopExecLogBufferedReader(String streamKey, Process process) { public void StopExecLogBufferedReader(String streamKey, Process process) {
BufferedReader bufferedReader = CommandLogBufferedReaderMap.get(streamKey); BufferedReader bufferedReader = CommandLogBufferedReaderMap.get(streamKey);
InputStreamReader inputStreamReader = CommandLogInputReaderMap.get(streamKey);
log.debug( log.debug(
"开始关停任务 [ {} ]对应的日志读取 BufferedReader {} InputStream Reader {}", "开始关停任务 [ {} ]对应的日志读取 BufferedReader {}",
streamKey, streamKey,
bufferedReader, bufferedReader
inputStreamReader
); );
LogCacheDaemonThread.submit( LogCacheDaemonThread.submit(
@@ -202,8 +191,6 @@ public class CommandExecLogCache {
.getInputStream() .getInputStream()
.close(); .close();
inputStreamReader.close();
bufferedReader.close(); bufferedReader.close();
} catch (IOException e) { } catch (IOException e) {
@@ -215,7 +202,6 @@ public class CommandExecLogCache {
); );
CommandLogBufferedReaderMap.remove(streamKey); CommandLogBufferedReaderMap.remove(streamKey);
CommandLogInputReaderMap.remove(streamKey);
} }
}); });
} }