transactionSafeRun

This commit is contained in:
gong
2025-12-25 17:04:42 +08:00
parent b171b1a81f
commit f374c335c4

View File

@@ -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());
}
}
}