From 8bd023b49fbdf2bc0677da8b7bbdce6c820f32f9 Mon Sep 17 00:00:00 2001 From: 疯狂的狮子li <15040126243@163.com> Date: 星期三, 02 十一月 2022 10:34:58 +0800 Subject: [PATCH] fix 修复 sqlserver 分页问题 --- ruoyi-framework/src/main/java/com/ruoyi/framework/config/ThreadPoolConfig.java | 34 ++++++++++++---------------------- 1 files changed, 12 insertions(+), 22 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 1048383..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 @@ -9,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; @@ -22,33 +21,23 @@ @Configuration public class ThreadPoolConfig { + /** + * 鏍稿績绾跨▼鏁� = cpu 鏍稿績鏁� + 1 + */ + private final int core = Runtime.getRuntime().availableProcessors() + 1; + @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(threadPoolProperties.getMaxPoolSize()); - executor.setCorePoolSize(threadPoolProperties.getCorePoolSize()); + executor.setCorePoolSize(core); + executor.setMaxPoolSize(core * 2); executor.setQueueCapacity(threadPoolProperties.getQueueCapacity()); executor.setKeepAliveSeconds(threadPoolProperties.getKeepAliveSeconds()); - RejectedExecutionHandler handler; - switch (threadPoolProperties.getRejectedExecutionHandler()) { - case "CallerRunsPolicy": - handler = new ThreadPoolExecutor.CallerRunsPolicy(); - break; - case "DiscardOldestPolicy": - handler = new ThreadPoolExecutor.DiscardOldestPolicy(); - break; - case "DiscardPolicy": - handler = new ThreadPoolExecutor.DiscardPolicy(); - break; - default: - handler = new ThreadPoolExecutor.AbortPolicy(); - break; - } - executor.setRejectedExecutionHandler(handler); + executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy()); return executor; } @@ -57,8 +46,9 @@ */ @Bean(name = "scheduledExecutorService") protected ScheduledExecutorService scheduledExecutorService() { - return new ScheduledThreadPoolExecutor(threadPoolProperties.getCorePoolSize(), - 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