From 5af1b7a5771e286537b3bd8cbe4db0938880c8db Mon Sep 17 00:00:00 2001 From: xiaohucoding <2307520758@qq.com> Date: Wed, 21 May 2025 22:18:31 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E5=8F=91=E5=B8=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/WorkReport/2025-05-hky.md | 16 +++++++++- .../controller/publishController.java | 31 ++++++++++++++++--- .../mapper/PublishMapper.java | 5 ++- .../pojo/ServicePublish.java | 6 ++-- .../pojo/ServicePublishDTO.java | 1 + .../pojo/ServicePublishVO.java | 10 ++---- .../service/Impl/PublishServiceImpl.java | 18 +++++------ .../service/PublishService.java | 7 +++-- src/main/resources/application.properties | 4 +-- 9 files changed, 64 insertions(+), 34 deletions(-) diff --git a/doc/WorkReport/2025-05-hky.md b/doc/WorkReport/2025-05-hky.md index 45598e5..08580ac 100644 --- a/doc/WorkReport/2025-05-hky.md +++ b/doc/WorkReport/2025-05-hky.md @@ -62,4 +62,18 @@ redis设计 暂无 ### 📅 明日计划 -完成redis设计,做完服务发布的逻辑开发 \ No newline at end of file +完成redis设计,做完服务发布的逻辑开发 + +## 2025年5月21日 +### ✅ 今日完成 +redis的服务器配置 + +### 🚧 进行中 +开发服务发布的redis内容 + +### ⚠️ 问题/障碍 +如何把model_version表中的配置中相关GPU资源的内容提取出来。 + + +### 📅 明日计划 +完成服务发布的开发 \ No newline at end of file diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/publishController.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/publishController.java index 586f991..8cd5599 100644 --- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/publishController.java +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/publishController.java @@ -1,18 +1,21 @@ package com.bipt.intelligentapplicationorchestrationservice.controller; -import com.bipt.intelligentapplicationorchestrationservice.pojo.OptResult; -import com.bipt.intelligentapplicationorchestrationservice.pojo.ServicePublishDTO; -import com.bipt.intelligentapplicationorchestrationservice.pojo.ServicePublishVO; +import com.bipt.intelligentapplicationorchestrationservice.config.RedisConfiguration; +import com.bipt.intelligentapplicationorchestrationservice.pojo.*; import com.bipt.intelligentapplicationorchestrationservice.service.PublishService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.List; + @Tag(name ="服务发布相关接口") @RestController @RequestMapping("/publish") @@ -21,6 +24,8 @@ public class publishController { @Autowired private PublishService publishService; + @Autowired + private RedisTemplate redisTemplate; /** * 新增请求发布 * @param servicePublishDTO @@ -28,11 +33,27 @@ public class publishController { */ @PostMapping @Operation(summary ="新增发布请求") + @Transactional public OptResult save(@RequestBody ServicePublishDTO servicePublishDTO){ log.info("模型发布请求:{}", servicePublishDTO); publishService.save(servicePublishDTO); - ServicePublishVO servicePublishVO = publishService.getByModelId(servicePublishDTO); - return OptResult.success(servicePublishVO); + Long modelId = servicePublishDTO.getModelId(); + String key="Model_" + modelId; + //查询redis是否存在GPU相关资源数据 + ServicePublishVO servicePublishVO = (ServicePublishVO) redisTemplate.opsForValue().get(key); + //如果存在,直接返回,无须查询数据库 + if (servicePublishVO != null){ + return OptResult.success(servicePublishVO); + } + + String modelConfig = publishService.getByModelId(modelId); + //todo 序列化结果提出来 + + ServicePublish servicePublish = new ServicePublish(); + String ip = servicePublishDTO.getIp(); + servicePublish.setIp(ip); + + return OptResult.success(); } diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/mapper/PublishMapper.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/mapper/PublishMapper.java index 177c38e..5582b45 100644 --- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/mapper/PublishMapper.java +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/mapper/PublishMapper.java @@ -14,8 +14,7 @@ public interface PublishMapper { void insert(ServicePublishDTO servicePublishDTO); Long getByApiUrl(String apiUrl); - @Select("select * from model_version where model_id=#{modelId} and status = 1") - ModelVersion getById(Long modelId); + @Select("select model_config from model_version where model_id=#{modelId} and status = 1") + String getById(Long modelId); - ServicePublishVO getByModelId(Long modelId); } diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ServicePublish.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ServicePublish.java index d17b386..9dd928b 100644 --- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ServicePublish.java +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ServicePublish.java @@ -16,8 +16,8 @@ import java.time.LocalDateTime; @NoArgsConstructor @AllArgsConstructor public class ServicePublish implements Serializable { - private Long id; private Long modelId; - private String apiUrl; - private LocalDateTime createTime; + private String GPUModel; + private String ip; + private String GPUMemorySize; } diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ServicePublishDTO.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ServicePublishDTO.java index 039a6a5..31f384f 100644 --- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ServicePublishDTO.java +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ServicePublishDTO.java @@ -19,4 +19,5 @@ public class ServicePublishDTO implements Serializable { private Long modelId; private String apiUrl; private LocalDateTime createTime; + private String ip; } diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ServicePublishVO.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ServicePublishVO.java index ec12f7f..d49a340 100644 --- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ServicePublishVO.java +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ServicePublishVO.java @@ -17,13 +17,9 @@ import java.time.LocalDateTime; @AllArgsConstructor public class ServicePublishVO implements Serializable { private Long modelId; - private String apiUrl; - private String version; - private Integer datasetId; - private String modelConfig; - private String modelPath; - private Integer status; - private LocalDateTime createTime; + private String GPUModel; + private String ip; + private String GPUMemorySize; } diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/PublishServiceImpl.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/PublishServiceImpl.java index 5e34fc9..52b422a 100644 --- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/PublishServiceImpl.java +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/PublishServiceImpl.java @@ -1,9 +1,7 @@ package com.bipt.intelligentapplicationorchestrationservice.service.Impl; import com.bipt.intelligentapplicationorchestrationservice.mapper.PublishMapper; -import com.bipt.intelligentapplicationorchestrationservice.pojo.ModelVersion; import com.bipt.intelligentapplicationorchestrationservice.pojo.ServicePublishDTO; -import com.bipt.intelligentapplicationorchestrationservice.pojo.ServicePublishVO; import com.bipt.intelligentapplicationorchestrationservice.service.PublishService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -31,19 +29,17 @@ public class PublishServiceImpl implements PublishService { if (id != null){ throw new IllegalArgumentException("请求已存在: " + apiUrl); } - Long modelId = servicePublishDTO.getModelId(); - ModelVersion modelVersion = publishMapper.getById(modelId); - String modelConfig = modelVersion.getModelConfig(); - //todo 调用GPU分配 - - publishMapper.insert(servicePublishDTO); } + /** + * 根据id查找配置信息 + * @param modelId + * @return + */ @Override - public ServicePublishVO getByModelId(ServicePublishDTO servicePublishDTO) { - Long modelId = servicePublishDTO.getModelId(); - return publishMapper.getByModelId(modelId); + public String getByModelId(Long modelId) { + return publishMapper.getById(modelId); } diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/PublishService.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/PublishService.java index b4a22ca..4d3b410 100644 --- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/PublishService.java +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/PublishService.java @@ -1,10 +1,13 @@ package com.bipt.intelligentapplicationorchestrationservice.service; import com.bipt.intelligentapplicationorchestrationservice.pojo.ServicePublishDTO; -import com.bipt.intelligentapplicationorchestrationservice.pojo.ServicePublishVO; public interface PublishService { + void save(ServicePublishDTO servicePublishDTO); - ServicePublishVO getByModelId(ServicePublishDTO servicePublishDTO); + + + + String getByModelId(Long modelId); } diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 20c8a9e..2b97d0a 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -24,6 +24,6 @@ spring.data.redis.port=6379 # Redis密码(如果有) spring.data.redis.password=Jbjhhzstsl97@ # Redis数据库索引(默认为0) -spring.data.redis.database=0 +spring.data.redis.database = 0 # 连接超时时间(毫秒) -spring.data.redis.timeout=3000 +spring.data.redis.timeout = 3000