From 155f69db3be2318309ea070d5a8818a0d3b5f1c1 Mon Sep 17 00:00:00 2001 From: Cui YongXing <2835316714@qq.com> Date: Sun, 8 Sep 2024 22:17:52 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=88=86=E9=A1=B5=E6=9D=A1?= =?UTF-8?q?=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/TaskInfoServiceImpl.java | 55 ++++++++++--------- 1 file changed, 29 insertions(+), 26 deletions(-) diff --git a/cloud-task-server/src/main/java/com/muyu/task/server/service/impl/TaskInfoServiceImpl.java b/cloud-task-server/src/main/java/com/muyu/task/server/service/impl/TaskInfoServiceImpl.java index ff9f079..5c3eb37 100644 --- a/cloud-task-server/src/main/java/com/muyu/task/server/service/impl/TaskInfoServiceImpl.java +++ b/cloud-task-server/src/main/java/com/muyu/task/server/service/impl/TaskInfoServiceImpl.java @@ -391,18 +391,19 @@ public class TaskInfoServiceImpl extends ServiceImpl i List list = nodeRuleService.list(wrapper); // 提交第一个任务 Future currentFuture = executor.submit(tasks.poll()); - for (NodeRule nodeRule : list) { - Result result = ruleFeign.findVersionById(nodeRule.getRuleId()); - RuleEngineVersion data = result.getData(); - final Future finalCurrentFuture = currentFuture; - log.info(finalCurrentFuture); - Callable task = () -> { - DataValue[][] prevResult = finalCurrentFuture.get(); - log.info(data.getClassName()); - if (data.getRuleId().equals("3")) { + if (!CollectionUtils.isEmpty(list)) { + for (NodeRule nodeRule : list) { + Result result = ruleFeign.findVersionById(nodeRule.getRuleId()); + RuleEngineVersion data = result.getData(); + final Future finalCurrentFuture = currentFuture; + log.info(finalCurrentFuture); + Callable task = () -> { + DataValue[][] prevResult = finalCurrentFuture.get(); + log.info(data.getClassName()); + if (data.getRuleId().equals("3")) { - } - if (data.getRuleId().equals("1")) { + } + if (data.getRuleId().equals("1")) { // for (DataValue[] values : prevResult) { // for (DataValue value : values) { // log.info(value.getValue()); @@ -411,8 +412,8 @@ public class TaskInfoServiceImpl extends ServiceImpl i // } // } - } - if (data.getRuleId().equals("2")) { + } + if (data.getRuleId().equals("2")) { // for (DataValue[] values : prevResult) { // for (DataValue value : values) { // log.info(value.getValue()); @@ -421,23 +422,25 @@ public class TaskInfoServiceImpl extends ServiceImpl i // } // } + } + return prevResult; + }; + + // 提交任务并更新当前Future + currentFuture = executor.submit(task); + + // 等待当前任务完成 + try { + currentFuture.get(); + } catch (InterruptedException | ExecutionException e) { + Thread.currentThread().interrupt(); + System.out.println("Task execution failed: " + e.getMessage()); + break; } - return prevResult; - }; - - // 提交任务并更新当前Future - currentFuture = executor.submit(task); - - // 等待当前任务完成 - try { - currentFuture.get(); - } catch (InterruptedException | ExecutionException e) { - Thread.currentThread().interrupt(); - System.out.println("Task execution failed: " + e.getMessage()); - break; } } + try { DataValue[][] afterFilteringDataValue = currentFuture.get(); for (DataValue[] datum : afterFilteringDataValue) {