flow调msg异步和调log异步

This commit is contained in:
2025-12-23 19:29:51 +08:00
parent 44f3b599a8
commit d4ed987f75
11 changed files with 69 additions and 28 deletions

View File

@@ -71,6 +71,12 @@
<artifactId>honeycom-msg-api</artifactId>
<version>5.4.0</version>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.38</version>
</dependency>
<!--必备: 操作数据源相关-->
<!-- <dependency>-->
<!-- <groupId>com.honeycombis</groupId>-->

View File

@@ -5,6 +5,7 @@ import com.honeycombis.honeycom.common.feign.annotation.EnableHoneycomFeignClien
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;
/**
@@ -16,6 +17,7 @@ import org.springframework.scheduling.annotation.EnableScheduling;
@EnableDiscoveryClient
@SpringBootApplication
@EnableScheduling
@EnableAsync
public class HoneycomSpdmApplication {
public static void main(String[] args) {
SpringApplication.run(HoneycomSpdmApplication.class, args);

View File

@@ -22,12 +22,12 @@ package com.honeycombis.honeycom.spdm.controller;
import cn.hutool.json.JSONUtil;
import com.honeycombis.honeycom.common.core.util.R;
import com.honeycombis.honeycom.spdm.dto.SysLogDto;
import com.honeycombis.honeycom.spdm.feign.SpdmServiceFeignClient;
import com.honeycombis.honeycom.spdm.service.SpdmService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -41,20 +41,17 @@ import org.springframework.web.bind.annotation.RestController;
@Slf4j
public class SpdmLogController {
@Resource
private SpdmServiceFeignClient spdmServiceFeignClient;
@Autowired
private SpdmService spdmService;
@Operation(summary = "记录日志")
@PostMapping(value = "/saveLog")
public R<Void> saveLog(@RequestBody SysLogDto sysLogDto) {
// R<Boolean> r = remoteLogServiceFeign.saveLog(messageDto, SecurityConstants.FROM_IN);
SysLogDto sysLog = new SysLogDto();
sysLog.setTitle("登录成功");
sysLog.setServiceId("simulation-system");
sysLog.setTenantId(sysLogDto.getTenantId());
sysLog.setCreateBy(sysLogDto.getCreateBy());
log.info("[SpdmLogController] sysLog param:{}", JSONUtil.toJsonStr(sysLog));
spdmServiceFeignClient.saveLog(sysLog);
log.info("[SpdmLogController] 接收到日志保存请求:{}", JSONUtil.toJsonStr(sysLogDto));
// 异步执行日志保存
spdmService.asyncSaveLog(sysLogDto);
return R.ok();
}

View File

@@ -1,4 +1,34 @@
package com.honeycombis.honeycom.spdm.service;
public interface SpdmService {
import cn.hutool.json.JSONUtil;
import com.honeycombis.honeycom.spdm.dto.SysLogDto;
import com.honeycombis.honeycom.spdm.feign.SpdmServiceFeignClient;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
@Service
@Slf4j
public class SpdmService {
@Resource
private SpdmServiceFeignClient spdmServiceFeignClient;
@Async
public void asyncSaveLog(SysLogDto sysLogDto) {
try {
SysLogDto sysLog = new SysLogDto();
sysLog.setTitle("登录成功");
sysLog.setServiceId("simulation-system");
sysLog.setTenantId(sysLogDto.getTenantId());
sysLog.setCreateBy(sysLogDto.getCreateBy());
log.info("[asyncSaveLog] sysLog param:{}", JSONUtil.toJsonStr(sysLog));
spdmServiceFeignClient.saveLog(sysLog);
} catch (Exception e) {
log.error("异步保存日志失败: {}", e.getMessage(), e);
// 这里可以添加降级处理,比如保存到本地文件或数据库
}
}
}

View File

@@ -1,9 +0,0 @@
package com.honeycombis.honeycom.spdm.service.impl;
import com.honeycombis.honeycom.spdm.service.SpdmService;
import org.springframework.stereotype.Service;
@Service
public class SpdmServiceImpl implements SpdmService {
}