diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/ZSServiceVersionMapper.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/ZSServiceVersionMapper.java index 59114d66..1e58a871 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/ZSServiceVersionMapper.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/ZSServiceVersionMapper.java @@ -60,4 +60,9 @@ public interface ZSServiceVersionMapper { * 查询所有runState为COMPLETED的版本列表 */ List queryAllComplList(); + + /** + * 查询所有runState为Running的版本列表 + */ + List queryAllRunList(); } diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/scheduling/ServiceVersionStatusTask.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/scheduling/ServiceVersionStatusTask.java index 7bc65f55..5db910ad 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/scheduling/ServiceVersionStatusTask.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/scheduling/ServiceVersionStatusTask.java @@ -164,7 +164,7 @@ public class ServiceVersionStatusTask { * 新增定时任务:处理已完成的任务,获取URL */ @Scheduled(cron = "0 * * * * ?") // 每分钟执行一次 - public void executeServiceVersionUrlTask() { + public void executeSetUrl() { try { // 1. 调用queryAllComplList接口获取所有runState为COMPLETED且url为空的数据 List completedVersions = serviceVersionMapper.queryAllComplList(); @@ -200,6 +200,44 @@ public class ServiceVersionStatusTask { } } + /** + * 新增定时任务:处理已完成的任务,获取URL + */ + @Scheduled(cron = "0 * * * * ?") // 每分钟执行一次 + public void executeServiceStatusChange() { + try { + // 1. 调用queryAllComplList接口获取所有runState为COMPLETED且url为空的数据 + List completedVersions = serviceVersionMapper.queryAllComplList(); + + if (completedVersions != null && !completedVersions.isEmpty()) { + for (ServiceVersionZs version : completedVersions) { + // 2. 过滤获取数据中的jobSetId字段 + String jobSetId = version.getJobSetId(); + if (jobSetId != null && !jobSetId.isEmpty()) { + try { + // 3. 调用远程接口获取状态和URL + String taskStatusUrl = zsServiceVersionUrl + "/api/v1/getTaskStatus"; + Map taskStatusInfo = callGetTaskStatus(taskStatusUrl, jobSetId); + + // 4. 如果url有值,则将url写入对应的数据中,然后更新数据库 + if (taskStatusInfo != null) { + String status = taskStatusInfo.get("status").toString(); + if ("STOPPED".equals(status)) { + version.setRunState(capitalizeFirstLetter(status)); + serviceVersionMapper.updateVersion(version); + } + } + } catch (Exception e) { + logger.error("Error processing service version URL for jobSetId: {}", jobSetId, e); + } + } + } + } + } catch (Exception e) { + logger.error("Error executing service version URL task", e); + } + } + /** * 将字符串转换为首字母大写的格式 * @param str 原始字符串 diff --git a/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/ZSServiceVersionMapper.xml b/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/ZSServiceVersionMapper.xml index 2f5adb1a..eaf89cce 100644 --- a/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/ZSServiceVersionMapper.xml +++ b/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/ZSServiceVersionMapper.xml @@ -200,4 +200,10 @@ order by create_time desc + +