From f374c335c4b3da85a80090ad6a010b64cba5b4fc Mon Sep 17 00:00:00 2001 From: gong <1157756119@qq.com> Date: Thu, 25 Dec 2025 17:04:42 +0800 Subject: [PATCH] transactionSafeRun --- .../src/main/java/com/czg/utils/FunUtils.java | 30 +++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/cash-common/cash-common-tools/src/main/java/com/czg/utils/FunUtils.java b/cash-common/cash-common-tools/src/main/java/com/czg/utils/FunUtils.java index baa9a5873..aed6fecc1 100644 --- a/cash-common/cash-common-tools/src/main/java/com/czg/utils/FunUtils.java +++ b/cash-common/cash-common-tools/src/main/java/com/czg/utils/FunUtils.java @@ -2,9 +2,12 @@ package com.czg.utils; import cn.hutool.core.lang.func.Func0; import lombok.extern.slf4j.Slf4j; +import org.springframework.transaction.support.TransactionSynchronization; +import org.springframework.transaction.support.TransactionSynchronizationManager; -import java.util.function.Consumer; - +/** + * @author zs + */ @Slf4j public class FunUtils { /** @@ -38,4 +41,27 @@ public class FunUtils { log.error(errorMsg, args, e); } } + + /** + * 在事务提交后执行方法 + * 异步 执行 + * + * @param func 方法 + */ + public static void transactionSafeRun(Runnable func) { + try { + if (TransactionSynchronizationManager.isSynchronizationActive()) { + TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() { + @Override + public void afterCommit() { + safeRunVoid(func, ""); + } + }); + } else { + safeRunVoid(func, ""); + } + } catch (Exception e) { + log.error("方法执行失败: {}", e.getMessage()); + } + } }