wisdomisite-java/src/main/java/com/zhgd/xmgl/util/AsyncTaskUtil.java

39 lines
1.2 KiB
Java
Raw Normal View History

2025-09-29 17:54:58 +08:00
package com.zhgd.xmgl.util;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.stereotype.Component;
import java.util.concurrent.CompletableFuture;
import java.util.function.Consumer;
@Component
public class AsyncTaskUtil {
private static ThreadPoolTaskExecutor doubleCarbonExecutor;
/**
* 执行异步任务
*/
public static CompletableFuture<Void> runAsync(Runnable task) {
return CompletableFuture.runAsync(task, doubleCarbonExecutor);
}
/**
* 执行异步任务并支持异常处理
*/
public static CompletableFuture<Void> runAsync(Runnable task, Consumer<Throwable> exceptionHandler) {
return CompletableFuture.runAsync(task, doubleCarbonExecutor)
.exceptionally(throwable -> {
exceptionHandler.accept(throwable);
return null;
});
}
@Autowired
public void setDoubleCarbonExecutor(@Qualifier("doubleCarbonExecutor") ThreadPoolTaskExecutor executor) {
AsyncTaskUtil.doubleCarbonExecutor = executor;
}
}