From 09c51b6b4e6c618eb54bf5d0ef6ae7a2dc852c08 Mon Sep 17 00:00:00 2001 From: Redkale <22250530@qq.com> Date: Mon, 2 Apr 2018 16:26:35 +0800 Subject: [PATCH] --- src/org/redkale/service/WebSocketNodeService.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/org/redkale/service/WebSocketNodeService.java b/src/org/redkale/service/WebSocketNodeService.java index 532441ff3..d6d8efcca 100644 --- a/src/org/redkale/service/WebSocketNodeService.java +++ b/src/org/redkale/service/WebSocketNodeService.java @@ -9,8 +9,9 @@ import static org.redkale.net.http.WebSocket.*; import java.io.*; import java.net.*; import java.util.*; -import java.util.concurrent.CompletableFuture; +import java.util.concurrent.*; import java.util.logging.Level; +import org.redkale.net.WorkThread; import org.redkale.net.http.*; import org.redkale.util.*; @@ -39,11 +40,17 @@ public class WebSocketNodeService extends WebSocketNode implements Service { public CompletableFuture> getWebSocketAddresses(final @RpcTargetAddress InetSocketAddress targetAddress, final Serializable groupid) { if (localSncpAddress == null || !localSncpAddress.equals(targetAddress)) return remoteWebSocketAddresses(targetAddress, groupid); if (this.localEngine == null) return CompletableFuture.completedFuture(new ArrayList<>()); + + ExecutorService executor = ForkJoinPool.commonPool(); + Thread thread = Thread.currentThread(); + if (thread instanceof WorkThread) { + executor = ((WorkThread) thread).getExecutor(); + } return CompletableFuture.supplyAsync(() -> { final List rs = new ArrayList<>(); this.localEngine.getLocalWebSockets(groupid).forEach(x -> rs.add(x.getRemoteAddr())); return rs; - }); + }, executor); } @Override