From bb37026f0a9429f286e2bc3445c2a11cba1a7658 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=A3=8E=E9=9B=A8=E8=A1=8C?= <2283550574@qq.com> Date: Wed, 31 May 2023 13:30:20 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=BA=BF=E7=A8=8B=E6=B1=A0?= =?UTF-8?q?=E6=89=A7=E8=A1=8C=E4=BB=BB=E5=8A=A1=E5=BC=82=E5=B8=B8=E6=97=B6?= =?UTF-8?q?=E7=9A=84=E6=97=A5=E5=BF=97=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/common/config/ThreadPoolConfig.java | 4 ++-- .../common/common/factory/MyThreadFactory.java | 14 ++++++++------ .../handler/GlobalUncaughtExceptionHandler.java | 6 ++---- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/mallchat-common/src/main/java/com/abin/mallchat/common/common/config/ThreadPoolConfig.java b/mallchat-common/src/main/java/com/abin/mallchat/common/common/config/ThreadPoolConfig.java index 2ff719a..687f7f4 100644 --- a/mallchat-common/src/main/java/com/abin/mallchat/common/common/config/ThreadPoolConfig.java +++ b/mallchat-common/src/main/java/com/abin/mallchat/common/common/config/ThreadPoolConfig.java @@ -46,7 +46,7 @@ public class ThreadPoolConfig implements AsyncConfigurer { executor.setQueueCapacity(200); executor.setThreadNamePrefix("mallchat-executor-"); executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());//满了调用线程执行,认为重要任务 - executor.setThreadFactory(new MyThreadFactory(executor.getThreadNamePrefix())); + executor.setThreadFactory(new MyThreadFactory(executor)); executor.initialize(); return executor; } @@ -59,7 +59,7 @@ public class ThreadPoolConfig implements AsyncConfigurer { executor.setQueueCapacity(1000);//支持同时推送1000人 executor.setThreadNamePrefix("websocket-executor-"); executor.setRejectedExecutionHandler(new ThreadPoolExecutor.DiscardPolicy());//满了直接丢弃,默认为不重要消息推送 - executor.setThreadFactory(new MyThreadFactory(executor.getThreadNamePrefix())); + executor.setThreadFactory(new MyThreadFactory(executor)); executor.initialize(); return executor; } diff --git a/mallchat-common/src/main/java/com/abin/mallchat/common/common/factory/MyThreadFactory.java b/mallchat-common/src/main/java/com/abin/mallchat/common/common/factory/MyThreadFactory.java index 463f2b7..b3733eb 100644 --- a/mallchat-common/src/main/java/com/abin/mallchat/common/common/factory/MyThreadFactory.java +++ b/mallchat-common/src/main/java/com/abin/mallchat/common/common/factory/MyThreadFactory.java @@ -4,21 +4,23 @@ import com.abin.mallchat.common.common.handler.GlobalUncaughtExceptionHandler; import lombok.AllArgsConstructor; import lombok.NoArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.scheduling.concurrent.CustomizableThreadFactory; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import java.util.concurrent.ThreadFactory; @Slf4j @AllArgsConstructor -@NoArgsConstructor -public class MyThreadFactory implements ThreadFactory { - - private String name; +public class MyThreadFactory implements ThreadFactory { + private ThreadFactory factory; @Override public Thread newThread(Runnable r) { - Thread thread = new Thread(r); - thread.setUncaughtExceptionHandler(new GlobalUncaughtExceptionHandler(name)); + Thread thread =factory.newThread(r); + thread.setUncaughtExceptionHandler(new GlobalUncaughtExceptionHandler()); + thread.setDaemon(false); + thread.setPriority(5); return thread; } } diff --git a/mallchat-common/src/main/java/com/abin/mallchat/common/common/handler/GlobalUncaughtExceptionHandler.java b/mallchat-common/src/main/java/com/abin/mallchat/common/common/handler/GlobalUncaughtExceptionHandler.java index 319a715..79f4e24 100644 --- a/mallchat-common/src/main/java/com/abin/mallchat/common/common/handler/GlobalUncaughtExceptionHandler.java +++ b/mallchat-common/src/main/java/com/abin/mallchat/common/common/handler/GlobalUncaughtExceptionHandler.java @@ -5,14 +5,12 @@ import lombok.NoArgsConstructor; import lombok.extern.slf4j.Slf4j; @Slf4j -@AllArgsConstructor -@NoArgsConstructor public class GlobalUncaughtExceptionHandler implements Thread.UncaughtExceptionHandler { - private String name; + @Override public void uncaughtException(Thread t, Throwable e) { - log.error("线程池名称:[{}],错误信息如下:",name); + log.error("{} task execute is error",t.getName()); e.printStackTrace(); }