fix: 修复 mainExecutor 线程池在高核CPU服务器上会空指针导致应用无法启动

原配置从配置文件读取 corePoolSize 和 maxPoolSize,
当配置缺失时传入 null 导致 BeanCreationException。
现改为基于 CPU 核心数动态计算,并设置固定上限 100。
This commit is contained in:
Jiali
2026-08-26 19:10:39 +08:00
committed by GitHub
parent f92e510665
commit 7f728c7a92

View File

@@ -54,8 +54,10 @@ public class BeanConfig {
int processorsNum = Runtime.getRuntime().availableProcessors();
log.info("mainExecutor,processorsNum:{}", processorsNum);
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(processorsNum * 2);
executor.setMaxPoolSize(100);
// 核心线程数不得超过最大线程数
int maxPoolSize = 100;
executor.setCorePoolSize(Math.min(processorsNum * 2, maxPoolSize));
executor.setMaxPoolSize(maxPoolSize);
return executor;
}