Browse Source

update 优化 解除注释 使用spring包装虚拟线程池无须担心idea警告问题

疯狂的狮子Li 1 year ago
parent
commit
a07e5d7833

+ 0 - 1
ruoyi-admin/src/main/resources/application.yml

@@ -64,7 +64,6 @@ spring:
     name: ${ruoyi.name}
   threads:
     # 开启虚拟线程 仅jdk21可用
-    # 开启后还需更改 UndertowConfig 虚拟线程配置
     virtual:
       enabled: false
   # 资源信息

+ 8 - 6
ruoyi-common/ruoyi-common-web/src/main/java/org/dromara/common/web/config/UndertowConfig.java

@@ -2,9 +2,11 @@ package org.dromara.common.web.config;
 
 import io.undertow.server.DefaultByteBufferPool;
 import io.undertow.websockets.jsr.WebSocketDeploymentInfo;
+import org.dromara.common.core.utils.SpringUtils;
 import org.springframework.boot.autoconfigure.AutoConfiguration;
 import org.springframework.boot.web.embedded.undertow.UndertowServletWebServerFactory;
 import org.springframework.boot.web.server.WebServerFactoryCustomizer;
+import org.springframework.core.task.VirtualThreadTaskExecutor;
 
 /**
  * Undertow 自定义配置
@@ -24,12 +26,12 @@ public class UndertowConfig implements WebServerFactoryCustomizer<UndertowServle
             WebSocketDeploymentInfo webSocketDeploymentInfo = new WebSocketDeploymentInfo();
             webSocketDeploymentInfo.setBuffers(new DefaultByteBufferPool(false, 512));
             deploymentInfo.addServletContextAttribute("io.undertow.websockets.jsr.WebSocketDeploymentInfo", webSocketDeploymentInfo);
-            // 使用虚拟线程 解除下方注释 仅限jdk21
-//            if (SpringUtils.isVirtual()) {
-//                VirtualThreadTaskExecutor executor = new VirtualThreadTaskExecutor("undertow-");
-//                deploymentInfo.setExecutor(executor);
-//                deploymentInfo.setAsyncExecutor(executor);
-//            }
+            // 使用虚拟线程
+            if (SpringUtils.isVirtual()) {
+                VirtualThreadTaskExecutor executor = new VirtualThreadTaskExecutor("undertow-");
+                deploymentInfo.setExecutor(executor);
+                deploymentInfo.setAsyncExecutor(executor);
+            }
         });
     }