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