From a46c798e017a0f6ce0ded81b6970bc9084d11957 Mon Sep 17 00:00:00 2001
From: 疯狂的狮子Li <15040126243@163.com>
Date: 星期四, 02 一月 2025 15:42:24 +0800
Subject: [PATCH] update 优化 延迟线程池 支持虚拟线程
---
ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/config/ThreadPoolConfig.java | 20 ++++++--------------
1 files changed, 6 insertions(+), 14 deletions(-)
diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/config/ThreadPoolConfig.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/config/ThreadPoolConfig.java
index 7040330..2630485 100644
--- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/config/ThreadPoolConfig.java
+++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/config/ThreadPoolConfig.java
@@ -10,11 +10,11 @@
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
+import org.springframework.core.task.VirtualThreadTaskExecutor;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledThreadPoolExecutor;
-import java.util.concurrent.ThreadFactory;
import java.util.concurrent.ThreadPoolExecutor;
/**
@@ -51,23 +51,15 @@
*/
@Bean(name = "scheduledExecutorService")
protected ScheduledExecutorService scheduledExecutorService() {
- ThreadFactory threadFactory;
- // 鏄惁鍚敤铏氭嫙绾跨▼
+ // daemon 蹇呴』涓� true
+ BasicThreadFactory.Builder builder = new BasicThreadFactory.Builder().daemon(true);
if (SpringUtils.isVirtual()) {
- // 铏氭嫙绾跨▼蹇呴』涓哄畧鎶ょ嚎绋嬶紝鍗� daemon 鍙兘鏄� true
- threadFactory = new BasicThreadFactory.Builder()
- .daemon(true)
- .namingPattern("virtual-schedule-pool-%d")
- .wrappedFactory(Thread.ofVirtual().factory())
- .build();
+ builder.namingPattern("virtual-schedule-pool-%d").wrappedFactory(new VirtualThreadTaskExecutor().getVirtualThreadFactory());
} else {
- threadFactory = new BasicThreadFactory.Builder()
- .daemon(true)
- .namingPattern("schedule-pool-%d")
- .build();
+ builder.namingPattern("schedule-pool-%d");
}
ScheduledThreadPoolExecutor scheduledThreadPoolExecutor = new ScheduledThreadPoolExecutor(core,
- threadFactory,
+ builder.build(),
new ThreadPoolExecutor.CallerRunsPolicy()) {
@Override
protected void afterExecute(Runnable r, Throwable t) {
--
Gitblit v1.9.3