diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/scheduling/ResourceOccupyTask.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/scheduling/ResourceOccupyTask.java index 3bf0d25b..c13dce32 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/scheduling/ResourceOccupyTask.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/scheduling/ResourceOccupyTask.java @@ -7,12 +7,15 @@ import com.ruoyi.platform.mapper.DevEnvironmentDao; import com.ruoyi.platform.mapper.ServiceDao; import com.ruoyi.platform.service.JupyterService; import com.ruoyi.platform.service.ResourceOccupyService; +import com.ruoyi.platform.service.ServiceService; import com.ruoyi.platform.vo.PodStatusVo; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; @Component() public class ResourceOccupyTask { @@ -26,6 +29,9 @@ public class ResourceOccupyTask { @Resource private ServiceDao serviceDao; + @Resource + private ServiceService serviceService; + @Resource private JupyterService jupyterService; @@ -50,8 +56,13 @@ public class ResourceOccupyTask { @Scheduled(cron = "0 0/1 * * * ?") // 每1分钟执行一次 public void serviceDeduceCredit() { List serviceVersions = serviceDao.getRunning(); + List deploymentNames = serviceVersions.stream().map(ServiceVersion::getDeploymentName).collect(Collectors.toList()); + Map runStates = serviceService.getRunState(deploymentNames); + serviceService.updateRunState(runStates, serviceVersions); for (ServiceVersion serviceVersion : serviceVersions) { - resourceOccupyService.deducing(Constant.TaskType_Service, null, serviceVersion.getId(), null, null); + if (Constant.Running.equals(serviceVersion.getRunState())) { + resourceOccupyService.deducing(Constant.TaskType_Service, null, serviceVersion.getId(), null, null); + } } } } diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ServiceService.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ServiceService.java index 0459aea2..11498f5c 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ServiceService.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ServiceService.java @@ -45,4 +45,8 @@ public interface ServiceService { Map getServiceVersionDocs(Long id); List serviceVersionList(Long id); + + Map getRunState(List deploymentNames); + + void updateRunState(Map runStates, List serviceVersionList); } diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ServiceServiceImpl.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ServiceServiceImpl.java index fba918d1..41e1df5d 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ServiceServiceImpl.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ServiceServiceImpl.java @@ -401,7 +401,8 @@ public class ServiceServiceImpl implements ServiceService { return serviceVersionVo; } - Map getRunState(List deploymentNames) { + @Override + public Map getRunState(List deploymentNames) { HashMap paramMap = new HashMap<>(); paramMap.put("deployment_names", deploymentNames); String req = HttpUtils.sendPost(argoUrl + modelService + "/getStatus", JSON.toJSONString(paramMap)); @@ -417,7 +418,8 @@ public class ServiceServiceImpl implements ServiceService { } } - void updateRunState(Map runStates, List serviceVersionList) { + @Override + public void updateRunState(Map runStates, List serviceVersionList) { for (ServiceVersion sv : serviceVersionList) { String runState = runStates.get(sv.getDeploymentName()); sv.setRunState(runState); diff --git a/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/ServiceDaoMapper.xml b/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/ServiceDaoMapper.xml index d9dceb2c..811a113b 100644 --- a/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/ServiceDaoMapper.xml +++ b/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/ServiceDaoMapper.xml @@ -56,9 +56,9 @@ @@ -75,31 +75,43 @@ insert into service(service_name, service_type, description, create_by, update_by) - values (#{service.serviceName}, #{service.serviceType}, #{service.description}, #{service.createBy}, #{service.updateBy}) + values (#{service.serviceName}, #{service.serviceType}, #{service.description}, #{service.createBy}, + #{service.updateBy}) - insert into service_version(service_id, version, model, description, image, resource, computing_resource_id, replicas, mount_path, env_variables, + insert into service_version(service_id, version, model, description, image, resource, computing_resource_id, + replicas, mount_path, env_variables, code_config, command, create_by, update_by, deploy_type) - values (#{serviceVersion.serviceId}, #{serviceVersion.version}, #{serviceVersion.model}, #{serviceVersion.description}, #{serviceVersion.image}, - #{serviceVersion.resource}, #{serviceVersion.computingResourceId}, #{serviceVersion.replicas}, #{serviceVersion.mountPath}, #{serviceVersion.envVariables}, - #{serviceVersion.codeConfig}, #{serviceVersion.command}, #{serviceVersion.createBy}, #{serviceVersion.updateBy}, #{serviceVersion.deployType}) + values (#{serviceVersion.serviceId}, #{serviceVersion.version}, #{serviceVersion.model}, + #{serviceVersion.description}, #{serviceVersion.image}, + #{serviceVersion.resource}, #{serviceVersion.computingResourceId}, #{serviceVersion.replicas}, + #{serviceVersion.mountPath}, #{serviceVersion.envVariables}, + #{serviceVersion.codeConfig}, #{serviceVersion.command}, #{serviceVersion.createBy}, + #{serviceVersion.updateBy}, #{serviceVersion.deployType})