From 0a4c73d39d89ceeb677fd0708fa0992e6a27e0f8 Mon Sep 17 00:00:00 2001 From: sion123 <450702724@qq.com> Date: Sun, 26 Apr 2026 23:48:02 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../benchmark/service/BenchmarkTaskServiceImpl.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/benchmark/service/BenchmarkTaskServiceImpl.java b/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/benchmark/service/BenchmarkTaskServiceImpl.java index 47cf44b9e1..746f0b21c3 100644 --- a/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/benchmark/service/BenchmarkTaskServiceImpl.java +++ b/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/benchmark/service/BenchmarkTaskServiceImpl.java @@ -15,6 +15,8 @@ import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.transaction.support.TransactionSynchronization; +import org.springframework.transaction.support.TransactionSynchronizationManager; import org.springframework.validation.annotation.Validated; import java.time.LocalDateTime; @@ -56,8 +58,15 @@ public class BenchmarkTaskServiceImpl implements BenchmarkTaskService { log.info("[createTask][userId={}, taskId={}] 创建对标分析任务成功", userId, taskId); - // 2. 异步执行任务 - benchmarkTaskExecutor.executeAsync(taskId, createReqVO); + // 2. 事务提交后再触发异步任务,避免异步线程读不到未提交的数据 + Long finalTaskId = taskId; + TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() { + @Override + public void afterCommit() { + log.info("[createTask][taskId={}] 事务已提交,触发异步执行", finalTaskId); + benchmarkTaskExecutor.executeAsync(finalTaskId, createReqVO); + } + }); return taskId; }