feat: 在用户链接状态查询中添加异步调用逻辑,首次调用立即执行,第二次调用延迟30秒,优化日志记录以便于调试
This commit is contained in:
@@ -26,6 +26,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|||||||
import reactor.core.publisher.Mono;
|
import reactor.core.publisher.Mono;
|
||||||
import reactor.core.scheduler.Schedulers;
|
import reactor.core.scheduler.Schedulers;
|
||||||
|
|
||||||
|
import java.time.Duration;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.temporal.ChronoUnit;
|
import java.time.temporal.ChronoUnit;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -1159,9 +1160,19 @@ private UserLinkStatusResponse doGetUserLinkStatus_DEPRECATED(Long linkId, Strin
|
|||||||
try {
|
try {
|
||||||
LinkBatch linkBatch = linkBatchMapper.findById(linkTask.getBatchId());
|
LinkBatch linkBatch = linkBatchMapper.findById(linkTask.getBatchId());
|
||||||
log.info("=============================================");
|
log.info("=============================================");
|
||||||
|
|
||||||
|
// 第一次立即调用
|
||||||
scriptClient.saveTotalTimes(deviceId,linkBatch.getTimes()).block();
|
scriptClient.saveTotalTimes(deviceId,linkBatch.getTimes()).block();
|
||||||
// saveTotalTimes方法已经包含了详细的日志记录
|
log.info("第一次调用saveTotalTimes成功 - codeNo:{},deviceId:{}",linkTask.getCodeNo(),deviceId);
|
||||||
log.info("codeNo:{},deviceId:{}",linkTask.getCodeNo(),deviceId);
|
|
||||||
|
// 30秒后异步调用第二次,不阻塞当前线程
|
||||||
|
Mono.delay(Duration.ofSeconds(30))
|
||||||
|
.flatMap(tick -> scriptClient.saveTotalTimes(deviceId, linkBatch.getTimes()))
|
||||||
|
.subscribe(
|
||||||
|
result -> log.info("第二次调用saveTotalTimes成功(30秒后) - codeNo:{},deviceId:{}", linkTask.getCodeNo(), deviceId),
|
||||||
|
error -> log.warn("第二次调用saveTotalTimes失败(30秒后) - codeNo:{},deviceId:{}, error:{}", linkTask.getCodeNo(), deviceId, error.getMessage())
|
||||||
|
);
|
||||||
|
|
||||||
log.info("=============================================");
|
log.info("=============================================");
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
|||||||
Reference in New Issue
Block a user