From 83cdeacaa88461fdc83921864c34770252b7d0b4 Mon Sep 17 00:00:00 2001 From: 疯狂的狮子li <15040126243@163.com> Date: 星期五, 22 四月 2022 12:06:56 +0800 Subject: [PATCH] update 简化 全局线程池配置 使用cpu核心数自动处理 --- /dev/null | 26 ------------- ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/ThreadPoolProperties.java | 16 -------- ruoyi-framework/src/main/java/com/ruoyi/framework/config/ThreadPoolConfig.java | 16 ++++--- ruoyi-admin/src/main/resources/application.yml | 10 ----- 4 files changed, 9 insertions(+), 59 deletions(-) diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index 9c1fab1..3d84371 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -256,20 +256,10 @@ thread-pool: # 鏄惁寮�鍚嚎绋嬫睜 enabled: false - # 鏍稿績绾跨▼姹犲ぇ灏� - corePoolSize: 8 - # 鏈�澶у彲鍒涘缓鐨勭嚎绋嬫暟 - maxPoolSize: 16 # 闃熷垪鏈�澶ч暱搴� queueCapacity: 128 # 绾跨▼姹犵淮鎶ょ嚎绋嬫墍鍏佽鐨勭┖闂叉椂闂� keepAliveSeconds: 300 - # 绾跨▼姹犲鎷掔粷浠诲姟(鏃犵嚎绋嬪彲鐢�)鐨勫鐞嗙瓥鐣� - # CALLER_RUNS_POLICY 璋冪敤鏂规墽琛� - # DISCARD_OLDEST_POLICY 鏀惧純鏈�鏃х殑 - # DISCARD_POLICY 涓㈠純 - # ABORT_POLICY 涓 - rejectedExecutionHandler: CALLER_RUNS_POLICY --- # redisson 缂撳瓨閰嶇疆 redisson: diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/ThreadPoolRejectedPolicy.java b/ruoyi-common/src/main/java/com/ruoyi/common/enums/ThreadPoolRejectedPolicy.java deleted file mode 100644 index 5529bb3..0000000 --- a/ruoyi-common/src/main/java/com/ruoyi/common/enums/ThreadPoolRejectedPolicy.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.ruoyi.common.enums; - -import lombok.AllArgsConstructor; -import lombok.Getter; - -import java.util.concurrent.RejectedExecutionHandler; -import java.util.concurrent.ThreadPoolExecutor; - -/** - * 绾跨▼姹� 鎷掔粷绛栫暐 娉涘瀷 - * - * @author Lion Li - */ -@Getter -@AllArgsConstructor -public enum ThreadPoolRejectedPolicy { - - CALLER_RUNS_POLICY("璋冪敤鏂规墽琛�", ThreadPoolExecutor.CallerRunsPolicy.class), - DISCARD_OLDEST_POLICY("鏀惧純鏈�鏃х殑", ThreadPoolExecutor.DiscardOldestPolicy.class), - DISCARD_POLICY("涓㈠純", ThreadPoolExecutor.DiscardPolicy.class), - ABORT_POLICY("涓", ThreadPoolExecutor.AbortPolicy.class); - - private final String name; - private final Class<? extends RejectedExecutionHandler> clazz; - -} diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ThreadPoolConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ThreadPoolConfig.java index f6e07fe..ebf236c 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ThreadPoolConfig.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ThreadPoolConfig.java @@ -1,7 +1,6 @@ package com.ruoyi.framework.config; import com.ruoyi.common.utils.Threads; -import com.ruoyi.common.utils.reflect.ReflectUtils; import com.ruoyi.framework.config.properties.ThreadPoolProperties; import org.apache.commons.lang3.concurrent.BasicThreadFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -10,7 +9,6 @@ import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; -import java.util.concurrent.RejectedExecutionHandler; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ScheduledThreadPoolExecutor; import java.util.concurrent.ThreadPoolExecutor; @@ -23,6 +21,11 @@ @Configuration public class ThreadPoolConfig { + /** + * 鏍稿績绾跨▼鏁� = cpu 鏍稿績鏁� + 1 + */ + private final int core = Runtime.getRuntime().availableProcessors() + 1; + @Autowired private ThreadPoolProperties threadPoolProperties; @@ -30,12 +33,11 @@ @ConditionalOnProperty(prefix = "thread-pool", name = "enabled", havingValue = "true") public ThreadPoolTaskExecutor threadPoolTaskExecutor() { ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); - executor.setMaxPoolSize(threadPoolProperties.getMaxPoolSize()); - executor.setCorePoolSize(threadPoolProperties.getCorePoolSize()); + executor.setMaxPoolSize(core); + executor.setCorePoolSize(core * 2); executor.setQueueCapacity(threadPoolProperties.getQueueCapacity()); executor.setKeepAliveSeconds(threadPoolProperties.getKeepAliveSeconds()); - RejectedExecutionHandler handler = ReflectUtils.newInstance(threadPoolProperties.getRejectedExecutionHandler().getClazz()); - executor.setRejectedExecutionHandler(handler); + executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy()); return executor; } @@ -44,7 +46,7 @@ */ @Bean(name = "scheduledExecutorService") protected ScheduledExecutorService scheduledExecutorService() { - return new ScheduledThreadPoolExecutor(threadPoolProperties.getCorePoolSize(), + return new ScheduledThreadPoolExecutor(core, new BasicThreadFactory.Builder().namingPattern("schedule-pool-%d").daemon(true).build(), new ThreadPoolExecutor.CallerRunsPolicy()) { @Override diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/ThreadPoolProperties.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/ThreadPoolProperties.java index fbffc0f..fe06733 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/ThreadPoolProperties.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/ThreadPoolProperties.java @@ -1,6 +1,5 @@ package com.ruoyi.framework.config.properties; -import com.ruoyi.common.enums.ThreadPoolRejectedPolicy; import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; @@ -21,16 +20,6 @@ private boolean enabled; /** - * 鏍稿績绾跨▼姹犲ぇ灏� - */ - private int corePoolSize; - - /** - * 鏈�澶у彲鍒涘缓鐨勭嚎绋嬫暟 - */ - private int maxPoolSize; - - /** * 闃熷垪鏈�澶ч暱搴� */ private int queueCapacity; @@ -39,10 +28,5 @@ * 绾跨▼姹犵淮鎶ょ嚎绋嬫墍鍏佽鐨勭┖闂叉椂闂� */ private int keepAliveSeconds; - - /** - * 绾跨▼姹犲鎷掔粷浠诲姟(鏃犵嚎绋嬪彲鐢�)鐨勫鐞嗙瓥鐣� - */ - private ThreadPoolRejectedPolicy rejectedExecutionHandler; } -- Gitblit v1.9.3