diff --git a/Partner-Core/src/main/java/work/slhaf/partner/core/action/runner/execution/CommandExecutionService.java b/Partner-Core/src/main/java/work/slhaf/partner/core/action/runner/execution/CommandExecutionService.java index 1aaa5a07..d47aee0e 100644 --- a/Partner-Core/src/main/java/work/slhaf/partner/core/action/runner/execution/CommandExecutionService.java +++ b/Partner-Core/src/main/java/work/slhaf/partner/core/action/runner/execution/CommandExecutionService.java @@ -7,10 +7,14 @@ import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; import java.util.concurrent.atomic.AtomicInteger; public class CommandExecutionService { + private ExecutorService readerExecutor = Executors.newVirtualThreadPerTaskExecutor(); + public String[] buildFileExecutionCommands(String launcher, Map params, String absolutePath) { int paramSize = params == null ? 0 : params.size(); String[] commands = new String[paramSize + 2]; @@ -57,8 +61,8 @@ public class CommandExecutionService { } }); - stdoutThread.start(); - stderrThread.start(); + readerExecutor.execute(stdoutThread); + readerExecutor.execute(stderrThread); int exitCode = process.waitFor(); stdoutThread.join(); @@ -81,4 +85,8 @@ public class CommandExecutionService { private String total; private List resultList; } + + @Data + public static class CommandSessionResult { + } }