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) {