From 56050aa6501f3d9d2f79a2c40a28815878ac56ee Mon Sep 17 00:00:00 2001 From: 疯狂的狮子li <15040126243@163.com> Date: 星期四, 24 十一月 2022 15:14:47 +0800 Subject: [PATCH] update 同步 ruoyi 相关提交 * fix 修复Log注解GET请求记录不到参数问题 * fix 修复某些特性的环境生成代码变乱码TXT文件问题 * update 消除Vue3控制台出现的警告信息 * fix 开启TopNav没有子菜单隐藏侧边栏 * fix 修复回显数据字典数组异常问题(I60UYQ) * update 忽略不必要的属性数据返回 --- ruoyi-framework/src/main/java/com/ruoyi/framework/config/ThreadPoolConfig.java | 55 +++++++++++++++++-------------------------------------- 1 files changed, 17 insertions(+), 38 deletions(-) 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 30d5ef9..a85ad1e 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,14 +1,14 @@ package com.ruoyi.framework.config; import com.ruoyi.common.utils.Threads; +import com.ruoyi.framework.config.properties.ThreadPoolProperties; import org.apache.commons.lang3.concurrent.BasicThreadFactory; -import org.springframework.beans.factory.annotation.Value; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Bean; 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; @@ -21,45 +21,23 @@ @Configuration public class ThreadPoolConfig { - // 鏍稿績绾跨▼姹犲ぇ灏� - @Value("${threadPoolConfig.corePoolSize}") - private int corePoolSize; + /** + * 鏍稿績绾跨▼鏁� = cpu 鏍稿績鏁� + 1 + */ + private final int core = Runtime.getRuntime().availableProcessors() + 1; - // 鏈�澶у彲鍒涘缓鐨勭嚎绋嬫暟 - @Value("${threadPoolConfig.maxPoolSize}") - private int maxPoolSize; - - // 闃熷垪鏈�澶ч暱搴� - @Value("${threadPoolConfig.queueCapacity}") - private int queueCapacity; - - // 绾跨▼姹犵淮鎶ょ嚎绋嬫墍鍏佽鐨勭┖闂叉椂闂� - @Value("${threadPoolConfig.keepAliveSeconds}") - private int keepAliveSeconds; - - // 绾跨▼姹犲鎷掔粷浠诲姟(鏃犵嚎绋嬪彲鐢�)鐨勫鐞嗙瓥鐣� - @Value("${threadPoolConfig.rejectedExecutionHandler}") - private String rejectedExecutionHandler; + @Autowired + private ThreadPoolProperties threadPoolProperties; @Bean(name = "threadPoolTaskExecutor") - @ConditionalOnProperty(prefix = "threadPoolTaskExecutor", name = "enabled", havingValue = "true") + @ConditionalOnProperty(prefix = "thread-pool", name = "enabled", havingValue = "true") public ThreadPoolTaskExecutor threadPoolTaskExecutor() { ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); - executor.setMaxPoolSize(maxPoolSize); - executor.setCorePoolSize(corePoolSize); - executor.setQueueCapacity(queueCapacity); - executor.setKeepAliveSeconds(keepAliveSeconds); - RejectedExecutionHandler handler; - if (rejectedExecutionHandler.equals("CallerRunsPolicy")) { - handler = new ThreadPoolExecutor.CallerRunsPolicy(); - } else if (rejectedExecutionHandler.equals("DiscardOldestPolicy")) { - handler = new ThreadPoolExecutor.DiscardOldestPolicy(); - } else if (rejectedExecutionHandler.equals("DiscardPolicy")) { - handler = new ThreadPoolExecutor.DiscardPolicy(); - } else { - handler = new ThreadPoolExecutor.AbortPolicy(); - } - executor.setRejectedExecutionHandler(handler); + executor.setCorePoolSize(core); + executor.setMaxPoolSize(core * 2); + executor.setQueueCapacity(threadPoolProperties.getQueueCapacity()); + executor.setKeepAliveSeconds(threadPoolProperties.getKeepAliveSeconds()); + executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy()); return executor; } @@ -68,8 +46,9 @@ */ @Bean(name = "scheduledExecutorService") protected ScheduledExecutorService scheduledExecutorService() { - return new ScheduledThreadPoolExecutor(corePoolSize, - new BasicThreadFactory.Builder().namingPattern("schedule-pool-%d").daemon(true).build()) { + return new ScheduledThreadPoolExecutor(core, + new BasicThreadFactory.Builder().namingPattern("schedule-pool-%d").daemon(true).build(), + new ThreadPoolExecutor.CallerRunsPolicy()) { @Override protected void afterExecute(Runnable r, Throwable t) { super.afterExecute(r, t); -- Gitblit v1.9.3