优化 AsyncConfig 虚拟线程名称支持

This commit is contained in:
数据小王子 2024-03-06 10:31:03 +08:00
parent 918d67abef
commit c1fb7b4484

View File

@ -6,6 +6,7 @@ import com.ruoyi.common.core.utils.SpringUtils;
import org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler; import org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler;
import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.core.task.VirtualThreadTaskExecutor;
import org.springframework.scheduling.annotation.AsyncConfigurer; import org.springframework.scheduling.annotation.AsyncConfigurer;
import org.springframework.scheduling.annotation.EnableAsync; import org.springframework.scheduling.annotation.EnableAsync;
@ -18,7 +19,6 @@ import java.util.concurrent.Executor;
* 如果未使用虚拟线程则生效 * 如果未使用虚拟线程则生效
* @author Lion Li * @author Lion Li
*/ */
@ConditionalOnProperty(prefix = "spring.threads.virtual", name = "enabled", havingValue = "false")
@AutoConfiguration @AutoConfiguration
public class AsyncConfig implements AsyncConfigurer { public class AsyncConfig implements AsyncConfigurer {
@ -27,6 +27,9 @@ public class AsyncConfig implements AsyncConfigurer {
*/ */
@Override @Override
public Executor getAsyncExecutor() { public Executor getAsyncExecutor() {
if(SpringUtils.isVirtual()) {
return new VirtualThreadTaskExecutor("async-");
}
return SpringUtils.getBean("scheduledExecutorService"); return SpringUtils.getBean("scheduledExecutorService");
} }