From 27e8a174b9b724dd4b8e6536a743dabfa3c1269d Mon Sep 17 00:00:00 2001
From: zhaowenyu <35589726@qq.com>
Date: Tue, 02 Dec 2025 16:59:48 +0800
Subject: [PATCH] 2025-12-02 zwy websocket去掉延时
---
ard-sample/src/main/java/com/ard/sample/component/websocket/handler/DockWebSocketHandler.java | 46 +++++++++++++++++++++++-----------------------
1 files changed, 23 insertions(+), 23 deletions(-)
diff --git a/ard-sample/src/main/java/com/ard/sample/component/websocket/handler/DockWebSocketHandler.java b/ard-sample/src/main/java/com/ard/sample/component/websocket/handler/DockWebSocketHandler.java
index d8f4a74..36fc65c 100644
--- a/ard-sample/src/main/java/com/ard/sample/component/websocket/handler/DockWebSocketHandler.java
+++ b/ard-sample/src/main/java/com/ard/sample/component/websocket/handler/DockWebSocketHandler.java
@@ -51,11 +51,11 @@
// ====================== 线程池 ======================
// 延时任务线程池(单线程,守护线程),用于处理连接关闭后的延时清理
- private final ScheduledExecutorService delayExecutor = Executors.newSingleThreadScheduledExecutor(runnable -> {
- Thread thread = new Thread(runnable, "websocket-关闭-延迟-线程");
- thread.setDaemon(true); // 设为守护线程,不阻塞JVM退出
- return thread;
- });
+// private final ScheduledExecutorService delayExecutor = Executors.newSingleThreadScheduledExecutor(runnable -> {
+// Thread thread = new Thread(runnable, "websocket-关闭-延迟-线程");
+// thread.setDaemon(true); // 设为守护线程,不阻塞JVM退出
+// return thread;
+// });
// 心跳检测线程池(单线程,守护线程),定时检查超时连接
private final ScheduledExecutorService heartbeatCheckExecutor = Executors.newSingleThreadScheduledExecutor(runnable -> {
@@ -179,7 +179,7 @@
log.info("用户[{}]连接关闭(状态码:{}),将延时5秒执行清理操作", userId, status.getCode());
// 延时5秒执行清理逻辑
- delayExecutor.schedule(() -> {
+// delayExecutor.schedule(() -> {
try {
// 清理核心存储
userSessions.remove(userId);
@@ -193,7 +193,7 @@
} catch (Exception e) {
log.error("用户[{}]延时清理操作异常", userId, e);
}
- }, 5, TimeUnit.SECONDS); // 延时5秒执行
+// }, 5, TimeUnit.SECONDS); // 延时5秒执行
} else {
// 无认证用户,直接清理
sessionLocks.remove(session);
@@ -316,20 +316,20 @@
// ====================== 销毁线程池(可选,防止内存泄漏) ======================
- public void destroy() {
- delayExecutor.shutdown();
- heartbeatCheckExecutor.shutdown();
- try {
- if (!delayExecutor.awaitTermination(1, TimeUnit.SECONDS)) {
- delayExecutor.shutdownNow();
- }
- if (!heartbeatCheckExecutor.awaitTermination(1, TimeUnit.SECONDS)) {
- heartbeatCheckExecutor.shutdownNow();
- }
- } catch (InterruptedException e) {
- delayExecutor.shutdownNow();
- heartbeatCheckExecutor.shutdownNow();
- }
- log.info("WebSocket线程池已销毁");
- }
+// public void destroy() {
+// delayExecutor.shutdown();
+// heartbeatCheckExecutor.shutdown();
+// try {
+// if (!delayExecutor.awaitTermination(1, TimeUnit.SECONDS)) {
+// delayExecutor.shutdownNow();
+// }
+// if (!heartbeatCheckExecutor.awaitTermination(1, TimeUnit.SECONDS)) {
+// heartbeatCheckExecutor.shutdownNow();
+// }
+// } catch (InterruptedException e) {
+// delayExecutor.shutdownNow();
+// heartbeatCheckExecutor.shutdownNow();
+// }
+// log.info("WebSocket线程池已销毁");
+// }
}
\ No newline at end of file
--
Gitblit v1.9.3