Browse Source

Update AbstractCommandExecutor.java

pull/3/MERGE
小清 4 years ago committed by GitHub
parent
commit
dc7a0a0f0e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 16
      dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/task/AbstractCommandExecutor.java

16
dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/task/AbstractCommandExecutor.java

@ -339,36 +339,27 @@ public abstract class AbstractCommandExecutor {
private void parseProcessOutput(Process process) { private void parseProcessOutput(Process process) {
String threadLoggerInfoName = String.format(LoggerUtils.TASK_LOGGER_THREAD_NAME + "-%s", taskExecutionContext.getTaskAppId()); String threadLoggerInfoName = String.format(LoggerUtils.TASK_LOGGER_THREAD_NAME + "-%s", taskExecutionContext.getTaskAppId());
ExecutorService getOutputLogService = ThreadUtils.newDaemonSingleThreadExecutor(threadLoggerInfoName + "-" + "getOutputLogService"); ExecutorService getOutputLogService = ThreadUtils.newDaemonSingleThreadExecutor(threadLoggerInfoName + "-" + "getOutputLogService");
getOutputLogService.submit(new Runnable() { getOutputLogService.submit(() -> {
@Override
public void run() {
BufferedReader inReader = null; BufferedReader inReader = null;
try { try {
inReader = new BufferedReader(new InputStreamReader(process.getInputStream())); inReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line; String line;
logBuffer.add("welcome to use bigdata scheduling system...");
while ((line = inReader.readLine()) != null) { while ((line = inReader.readLine()) != null) {
if (line.startsWith("${setValue(")) {
varPool.append(line.substring("${setValue(".length(), line.length() - 2));
varPool.append("$VarPool$");
} else {
logBuffer.add(line); logBuffer.add(line);
} }
}
} catch (Exception e) { } catch (Exception e) {
logger.error(e.getMessage(), e); logger.error(e.getMessage(), e);
} finally { } finally {
logOutputIsScuccess = true; logOutputIsScuccess = true;
close(inReader); close(inReader);
} }
}
}); });
getOutputLogService.shutdown(); getOutputLogService.shutdown();
ExecutorService parseProcessOutputExecutorService = ThreadUtils.newDaemonSingleThreadExecutor(threadLoggerInfoName); ExecutorService parseProcessOutputExecutorService = ThreadUtils.newDaemonSingleThreadExecutor(threadLoggerInfoName);
parseProcessOutputExecutorService.submit(new Runnable() { parseProcessOutputExecutorService.submit(() -> {
@Override
public void run() {
try { try {
long lastFlushTime = System.currentTimeMillis(); long lastFlushTime = System.currentTimeMillis();
while (logBuffer.size() > 0 || !logOutputIsScuccess) { while (logBuffer.size() > 0 || !logOutputIsScuccess) {
@ -383,7 +374,6 @@ public abstract class AbstractCommandExecutor {
} finally { } finally {
clear(); clear();
} }
}
}); });
parseProcessOutputExecutorService.shutdown(); parseProcessOutputExecutorService.shutdown();
} }

Loading…
Cancel
Save