[agent][executor]- bug - 11
This commit is contained in:
@@ -34,15 +34,15 @@ public class CommandExecLogCache {
|
|||||||
*/
|
*/
|
||||||
private static final ArrayList<String> EmptyCommandLog = new ArrayList<>();
|
private static final ArrayList<String> EmptyCommandLog = new ArrayList<>();
|
||||||
// 存储命令执行缓存日志
|
// 存储命令执行缓存日志
|
||||||
private static HashMap<String, ArrayList<String>> CachedCommandLogMap = new HashMap<>();
|
private static final HashMap<String, ArrayList<String>> CachedCommandLogMap = new HashMap<>();
|
||||||
/**
|
/**
|
||||||
* 存储每一个任务对应的 日志读取BufferedReader
|
* 存储每一个任务对应的 日志读取BufferedReader
|
||||||
*/
|
*/
|
||||||
private static HashMap<String, BufferedReader> CommandLogBufferedReaderMap = new HashMap<>();
|
private static final HashMap<String, BufferedReader> CommandLogBufferedReaderMap = new HashMap<>();
|
||||||
/**
|
/**
|
||||||
* 存储每一个任务对应的 日志读取 InputStream Reader
|
* 存储每一个任务对应的 日志读取 InputStream Reader
|
||||||
*/
|
*/
|
||||||
private static HashMap<String, InputStreamReader> CommandLogInputReaderMap = new HashMap<>();
|
private static final HashMap<String, InputStreamReader> CommandLogInputReaderMap = new HashMap<>();
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
SimpleStreamSender simpleStreamSender;
|
SimpleStreamSender simpleStreamSender;
|
||||||
@@ -132,8 +132,10 @@ public class CommandExecLogCache {
|
|||||||
streamKey,
|
streamKey,
|
||||||
bufferedReader
|
bufferedReader
|
||||||
);
|
);
|
||||||
CommandLogInputReaderMap.put(streamKey,
|
CommandLogInputReaderMap.put(
|
||||||
inputStreamReader);
|
streamKey,
|
||||||
|
inputStreamReader
|
||||||
|
);
|
||||||
|
|
||||||
log.debug("开始获取bufferedReader中每一行的内容");
|
log.debug("开始获取bufferedReader中每一行的内容");
|
||||||
// !! 此处会阻塞
|
// !! 此处会阻塞
|
||||||
@@ -167,21 +169,24 @@ public class CommandExecLogCache {
|
|||||||
inputStreamReader
|
inputStreamReader
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
// 关闭command的输出流
|
||||||
|
process
|
||||||
|
.getInputStream()
|
||||||
|
.close();
|
||||||
|
|
||||||
// 关闭command的输出流
|
inputStreamReader.close();
|
||||||
process
|
|
||||||
.getInputStream()
|
|
||||||
.close();
|
|
||||||
|
|
||||||
inputStreamReader.close();
|
bufferedReader.close();
|
||||||
|
|
||||||
bufferedReader.close();
|
} catch (IOException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
} finally {
|
||||||
|
|
||||||
} catch (IOException e) {
|
CommandLogBufferedReaderMap.remove(streamKey);
|
||||||
throw new RuntimeException(e);
|
CommandLogInputReaderMap.remove(streamKey);
|
||||||
}
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -203,8 +208,7 @@ public class CommandExecLogCache {
|
|||||||
.writerWithDefaultPrettyPrinter()
|
.writerWithDefaultPrettyPrinter()
|
||||||
.writeValueAsString(cachedCommandLog);
|
.writeValueAsString(cachedCommandLog);
|
||||||
|
|
||||||
System.out.println("s = " + s);
|
System.out.println(s);
|
||||||
|
|
||||||
|
|
||||||
} catch (JsonProcessingException e) {
|
} catch (JsonProcessingException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
|
|||||||
Reference in New Issue
Block a user