服务发布
This commit is contained in:
@ -0,0 +1,75 @@
|
|||||||
|
package com.bipt.intelligentapplicationorchestrationservice.controller;
|
||||||
|
|
||||||
|
import com.bipt.intelligentapplicationorchestrationservice.pojo.*;
|
||||||
|
import com.bipt.intelligentapplicationorchestrationservice.service.PublishService;
|
||||||
|
import com.bipt.intelligentapplicationorchestrationservice.util.NacosServiceUtil;
|
||||||
|
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.*;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Tag(name ="服务发布相关接口")
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/publish")
|
||||||
|
@Slf4j
|
||||||
|
public class PublishController {
|
||||||
|
@Autowired
|
||||||
|
private PublishService publishService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private RedisTemplate redisTemplate;
|
||||||
|
@Autowired
|
||||||
|
private NacosServiceUtil nacosServiceUtil;
|
||||||
|
|
||||||
|
@PostMapping
|
||||||
|
@Operation(summary ="新增发布请求")
|
||||||
|
@Transactional
|
||||||
|
public OptResult<List<ServicePublishVO>> save(@RequestBody ServicePublishDTO servicePublishDTO) {
|
||||||
|
log.info("模型发布请求:{}", servicePublishDTO);
|
||||||
|
publishService.save(servicePublishDTO);
|
||||||
|
//todo 调用模型部署
|
||||||
|
|
||||||
|
// 获取前端传来的IP字符串
|
||||||
|
String ipListStr = servicePublishDTO.getIp();
|
||||||
|
if (ipListStr == null || ipListStr.trim().isEmpty()) {
|
||||||
|
log.warn("IP列表为空,不进行Nacos注册");
|
||||||
|
return OptResult.success();
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
// 使用逗号分割IP字符串
|
||||||
|
String[] ipArray = ipListStr.split(",");
|
||||||
|
// 循环注册每个IP到Nacos
|
||||||
|
for (String ip : ipArray) {
|
||||||
|
String trimmedIp = ip.trim();
|
||||||
|
if (!trimmedIp.isEmpty()) {
|
||||||
|
nacosServiceUtil.registerService(
|
||||||
|
servicePublishDTO.getModelId().toString(),
|
||||||
|
trimmedIp,
|
||||||
|
8080,
|
||||||
|
servicePublishDTO.getApiUrl()
|
||||||
|
);
|
||||||
|
log.info("Nacos服务注册成功: {}", trimmedIp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("Nacos服务注册失败", e);
|
||||||
|
return OptResult.error("Nacos服务注册失败"); // 根据业务需求返回错误
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return OptResult.success();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
Reference in New Issue
Block a user