From 9def5a4d7a34d6a6d14e46fe4524b9c234e4cfab Mon Sep 17 00:00:00 2001 From: chenzhihang <709011834@qq.com> Date: Mon, 19 May 2025 11:30:38 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=8A=B6=E6=80=81=E6=9B=B4?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../scheduling/ActiveLearnInsStatusTask.java | 21 ++++++++++++------ .../scheduling/AutoMlInsStatusTask.java | 22 +++++++++++++------ .../ExperimentInstanceStatusTask.java | 21 ++++++++++++------ .../platform/scheduling/MLStatusTask.java | 22 +++++++++++++------ .../platform/scheduling/RayInsStatusTask.java | 22 +++++++++++++------ 5 files changed, 73 insertions(+), 35 deletions(-) diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/scheduling/ActiveLearnInsStatusTask.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/scheduling/ActiveLearnInsStatusTask.java index 0bd1150e..22c5e327 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/scheduling/ActiveLearnInsStatusTask.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/scheduling/ActiveLearnInsStatusTask.java @@ -14,6 +14,7 @@ import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.util.ArrayList; +import java.util.HashSet; import java.util.Iterator; import java.util.List; @@ -31,7 +32,7 @@ public class ActiveLearnInsStatusTask { @Resource private ResourceOccupyService resourceOccupyService; - private List activeLearnIds = new ArrayList<>(); + private HashSet activeLearnIds = new HashSet<>(); @Scheduled(cron = "0/10 * * * * ?") // 每10S执行一次 public void executeActiveLearnInsStatus() { @@ -76,14 +77,16 @@ public class ActiveLearnInsStatusTask { } } - @Scheduled(cron = "0/30 * * * * ?") // / 每30S执行一次 + @Scheduled(cron = "0/10 * * * * ?") // / 每30S执行一次 public void executeActiveLearnStatus() { if (activeLearnIds.size() == 0) { return; } // 存储需要更新的实验对象列表 List updateActiveLearns = new ArrayList<>(); - for (Long activeLearnId : activeLearnIds) { + Iterator iterator1 = activeLearnIds.iterator(); + while (iterator1.hasNext()) { + Long activeLearnId = iterator1.next(); // 获取当前实验的所有实例列表 List insList = activeLearnInsDao.getByActiveLearnId(activeLearnId); List statusList = new ArrayList<>(); @@ -93,10 +96,14 @@ public class ActiveLearnInsStatusTask { } String subStatus = statusList.toString().substring(1, statusList.toString().length() - 1); ActiveLearn activeLearn = activeLearnDao.getActiveLearnById(activeLearnId); - if (!StringUtils.equals(activeLearn.getStatusList(), subStatus)) { - activeLearn.setStatusList(subStatus); - updateActiveLearns.add(activeLearn); - activeLearnDao.edit(activeLearn); + if (activeLearn == null) { + iterator1.remove(); + } else { + if (!StringUtils.equals(activeLearn.getStatusList(), subStatus)) { + activeLearn.setStatusList(subStatus); + updateActiveLearns.add(activeLearn); + activeLearnDao.edit(activeLearn); + } } } diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/scheduling/AutoMlInsStatusTask.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/scheduling/AutoMlInsStatusTask.java index 44822fa8..5d013920 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/scheduling/AutoMlInsStatusTask.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/scheduling/AutoMlInsStatusTask.java @@ -12,6 +12,7 @@ import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.util.ArrayList; +import java.util.HashSet; import java.util.Iterator; import java.util.List; @@ -27,7 +28,7 @@ public class AutoMlInsStatusTask { @Resource private AutoMlDao autoMlDao; - private List autoMlIds = new ArrayList<>(); + private HashSet autoMlIds = new HashSet<>(); @Scheduled(cron = "0/10 * * * * ?") // 每10S执行一次 public void executeAutoMlInsStatus() { @@ -58,14 +59,17 @@ public class AutoMlInsStatusTask { } } - @Scheduled(cron = "0/30 * * * * ?") // / 每30S执行一次 + @Scheduled(cron = "0/10 * * * * ?") // / 每30S执行一次 public void executeAutoMlStatus() { if (autoMlIds.size() == 0) { return; } // 存储需要更新的实验对象列表 List updateAutoMls = new ArrayList<>(); - for (Long autoMlId : autoMlIds) { + Iterator iterator1 = autoMlIds.iterator(); + + while (iterator1.hasNext()) { + Long autoMlId = iterator1.next(); // 获取当前实验的所有实例列表 List insList = autoMlInsDao.getByAutoMlId(autoMlId); List statusList = new ArrayList<>(); @@ -75,10 +79,14 @@ public class AutoMlInsStatusTask { } String subStatus = statusList.toString().substring(1, statusList.toString().length() - 1); AutoMl autoMl = autoMlDao.getAutoMlById(autoMlId); - if (!StringUtils.equals(autoMl.getStatusList(), subStatus)) { - autoMl.setStatusList(subStatus); - updateAutoMls.add(autoMl); - autoMlDao.edit(autoMl); + if (autoMl == null) { + iterator1.remove(); + } else { + if (!StringUtils.equals(autoMl.getStatusList(), subStatus)) { + autoMl.setStatusList(subStatus); + updateAutoMls.add(autoMl); + autoMlDao.edit(autoMl); + } } } diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/scheduling/ExperimentInstanceStatusTask.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/scheduling/ExperimentInstanceStatusTask.java index 3b97cd22..61103817 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/scheduling/ExperimentInstanceStatusTask.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/scheduling/ExperimentInstanceStatusTask.java @@ -34,7 +34,7 @@ public class ExperimentInstanceStatusTask { @Resource private ResourceOccupyService resourceOccupyService; - private List experimentIds = new ArrayList<>(); + private HashSet experimentIds = new HashSet<>(); @Scheduled(cron = "0/10 * * * * ?") // 每10S执行一次 public void executeExperimentInsStatus() throws Exception { @@ -141,14 +141,17 @@ public class ExperimentInstanceStatusTask { } } - @Scheduled(cron = "0/30 * * * * ?") // / 每30S执行一次 + @Scheduled(cron = "0/10 * * * * ?") // / 每30S执行一次 public void executeExperimentStatus() throws IOException { if (experimentIds.size() == 0) { return; } // 存储需要更新的实验对象列表 List updateExperiments = new ArrayList<>(); - for (Integer experimentId : experimentIds) { + Iterator iterator1 = experimentIds.iterator(); + + while (iterator1.hasNext()) { + Integer experimentId = iterator1.next(); // 获取当前实验的所有实例列表 List insList = experimentInsService.getByExperimentId(experimentId); List statusList = new ArrayList<>(); @@ -158,10 +161,14 @@ public class ExperimentInstanceStatusTask { } String subStatus = statusList.toString().substring(1, statusList.toString().length() - 1); Experiment experiment = experimentDao.queryById(experimentId); - // 如果实验状态列表发生变化,则更新实验对象,并加入到需要更新的列表中 - if (!StringUtils.equals(subStatus, experiment.getStatusList())) { - experiment.setStatusList(subStatus); - updateExperiments.add(experiment); + if (experiment == null) { + iterator1.remove(); + } else { + // 如果实验状态列表发生变化,则更新实验对象,并加入到需要更新的列表中 + if (!StringUtils.equals(subStatus, experiment.getStatusList())) { + experiment.setStatusList(subStatus); + updateExperiments.add(experiment); + } } } diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/scheduling/MLStatusTask.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/scheduling/MLStatusTask.java index 88980ba6..0acdd1b6 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/scheduling/MLStatusTask.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/scheduling/MLStatusTask.java @@ -13,6 +13,7 @@ import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.util.ArrayList; +import java.util.HashSet; import java.util.Iterator; import java.util.List; @@ -29,7 +30,7 @@ public class MLStatusTask { @Resource private ResourceOccupyService resourceOccupyService; - private List machineLearnIds = new ArrayList<>(); + private HashSet machineLearnIds = new HashSet<>(); @Scheduled(cron = "0/10 * * * * ?") // 每10S执行一次 public void executeMachineLearnInsStatus() { @@ -80,14 +81,17 @@ public class MLStatusTask { } } - @Scheduled(cron = "0/30 * * * * ?") // / 每30S执行一次 + @Scheduled(cron = "0/10 * * * * ?") // / 每30S执行一次 public void executeMachineLearn() { if (machineLearnIds.size() == 0) { return; } // 存储需要更新的实验对象列表 List updateMLs = new ArrayList<>(); - for (Long machineLearnId : machineLearnIds) { + Iterator iterator1 = machineLearnIds.iterator(); + + while (iterator1.hasNext()) { + Long machineLearnId = iterator1.next(); // 获取当前实验的所有实例列表 List insList = machineLearnInsDao.getByMachineLearnId(machineLearnId); List statusList = new ArrayList<>(); @@ -97,10 +101,14 @@ public class MLStatusTask { } String subStatus = statusList.toString().substring(1, statusList.toString().length() - 1); MachineLearn machineLearn = machineLearnDao.getMachineLearnById(machineLearnId); - if (!StringUtils.equals(machineLearn.getStatusList(), subStatus)) { - machineLearn.setStatusList(subStatus); - updateMLs.add(machineLearn); - machineLearnDao.edit(machineLearn); + if (machineLearn == null) { + iterator1.remove(); + } else { + if (!StringUtils.equals(machineLearn.getStatusList(), subStatus)) { + machineLearn.setStatusList(subStatus); + updateMLs.add(machineLearn); + machineLearnDao.edit(machineLearn); + } } } diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/scheduling/RayInsStatusTask.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/scheduling/RayInsStatusTask.java index cbf65ed4..151c5db1 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/scheduling/RayInsStatusTask.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/scheduling/RayInsStatusTask.java @@ -14,6 +14,7 @@ import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.util.ArrayList; +import java.util.HashSet; import java.util.Iterator; import java.util.List; @@ -31,7 +32,7 @@ public class RayInsStatusTask { @Resource private ResourceOccupyService resourceOccupyService; - private List rayIds = new ArrayList<>(); + private HashSet rayIds = new HashSet<>(); @Scheduled(cron = "0/10 * * * * ?") // 每10S执行一次 public void executeRayInsStatus() { @@ -76,14 +77,17 @@ public class RayInsStatusTask { } } - @Scheduled(cron = "0/30 * * * * ?") // / 每30S执行一次 + @Scheduled(cron = "0/10 * * * * ?") // / 每30S执行一次 public void executeRayStatus() { if (rayIds.size() == 0) { return; } // 存储需要更新的实验对象列表 List updateRays = new ArrayList<>(); - for (Long rayId : rayIds) { + Iterator iterator1 = rayIds.iterator(); + + while (iterator1.hasNext()) { + Long rayId = iterator1.next(); // 获取当前实验的所有实例列表 List insList = rayInsDao.getByRayId(rayId); List statusList = new ArrayList<>(); @@ -93,10 +97,14 @@ public class RayInsStatusTask { } String subStatus = statusList.toString().substring(1, statusList.toString().length() - 1); Ray ray = rayDao.getRayById(rayId); - if (!StringUtils.equals(ray.getStatusList(), subStatus)) { - ray.setStatusList(subStatus); - updateRays.add(ray); - rayDao.edit(ray); + if (ray == null) { + iterator1.remove(); + } else { + if (!StringUtils.equals(ray.getStatusList(), subStatus)) { + ray.setStatusList(subStatus); + updateRays.add(ray); + rayDao.edit(ray); + } } }