diff --git a/src/main/java/neatlogic/module/deploy/api/job/CreateMultiDeployJobApi.java b/src/main/java/neatlogic/module/deploy/api/job/CreateMultiDeployJobApi.java index aadcad3ba8968e79e9470a0a08831aa6da00aba1..098472ca529ec7100b3f2843bf0bb6b89b97772b 100644 --- a/src/main/java/neatlogic/module/deploy/api/job/CreateMultiDeployJobApi.java +++ b/src/main/java/neatlogic/module/deploy/api/job/CreateMultiDeployJobApi.java @@ -51,6 +51,8 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.util.Queue; +import java.util.concurrent.ConcurrentLinkedQueue; /** * @author lvzk @@ -125,6 +127,7 @@ public class CreateMultiDeployJobApi extends PrivateApiComponentBase { throw new ParamIrregularException("appSystemId | appSystemName"); } Long invokeId = deployJobParam.getAppSystemId(); + Queue queue = new ConcurrentLinkedQueue<>(); BatchRunner runner = new BatchRunner<>(); runner.execute(deployJobParam.getModuleList(), 3, (threadIndex, dataIndex, module) -> { if (module != null) { @@ -135,9 +138,9 @@ public class CreateMultiDeployJobApi extends PrivateApiComponentBase { deployJob.setRouteId(invokeId.toString()); try { if (jsonObj.containsKey("triggerType")) { - result.add(deployJobService.createJobAndSchedule(deployJob, module)); + queue.add(deployJobService.createJobAndSchedule(deployJob, module)); } else { - result.add(deployJobService.createJobAndFire(deployJob, module)); + queue.add(deployJobService.createJobAndFire(deployJob, module)); } } catch (Exception ex) { logger.error(ex.getMessage(), ex); @@ -145,11 +148,12 @@ public class CreateMultiDeployJobApi extends PrivateApiComponentBase { resultJson.put("appSystemName", jsonObj.getString("appSystemName")); resultJson.put("appModuleName", jsonObj.getString("appModuleName")); resultJson.put("errorMsg", ex.getMessage()); - result.add(resultJson); + queue.add(resultJson); } } }, "DEPLOY-JOB-MULTI-CREATE"); + result.addAll(queue); return result; }