From 48007b141ba66dcdff1ceae64d65b259b5c2e7b3 Mon Sep 17 00:00:00 2001 From: redkale Date: Sun, 25 Aug 2024 09:43:51 +0800 Subject: [PATCH] =?UTF-8?q?Client=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/redkale/net/client/Client.java | 3 +- .../redkale/net/client/ClientConnection.java | 33 ------------------- .../org/redkale/net/client/ClientFuture.java | 5 +++ .../redkale/net/client/ClientWriteThread.java | 2 +- 4 files changed, 8 insertions(+), 35 deletions(-) diff --git a/src/main/java/org/redkale/net/client/Client.java b/src/main/java/org/redkale/net/client/Client.java index bd4b0d5c3..5b435443a 100644 --- a/src/main/java/org/redkale/net/client/Client.java +++ b/src/main/java/org/redkale/net/client/Client.java @@ -43,6 +43,8 @@ public abstract class Client, R extends ClientR protected final ScheduledThreadPoolExecutor timeoutScheduler; + protected final Random random = new Random(); + // 结合ClientRequest.isCompleted()使用 // 使用场景:批量request提交时,后面的request需响应上一个request返回值来构建 // 例如: MySQL批量提交PrepareSQL场景 @@ -404,7 +406,6 @@ public abstract class Client, R extends ClientR if (workThread != null && workThread.threads() == entrys.length && workThread.index() > -1) { return entrys[workThread.index()]; } - ThreadLocalRandom random = ThreadLocalRandom.current(); int index = workThread == null || workThread.index() < 0 ? random.nextInt(entrys.length) : workThread.index() % entrys.length; diff --git a/src/main/java/org/redkale/net/client/ClientConnection.java b/src/main/java/org/redkale/net/client/ClientConnection.java index d26d79e04..07f78d1f2 100644 --- a/src/main/java/org/redkale/net/client/ClientConnection.java +++ b/src/main/java/org/redkale/net/client/ClientConnection.java @@ -195,38 +195,6 @@ public abstract class ClientConnection extends CompletableFuture< } } + public static ClientFuture[] array(Collection list) { + return list.toArray(new ClientFuture[list.size()]); + } + @Override // JDK9+ public ClientFuture newIncompleteFuture() { ClientFuture future = new ClientFuture<>(conn, request); diff --git a/src/main/java/org/redkale/net/client/ClientWriteThread.java b/src/main/java/org/redkale/net/client/ClientWriteThread.java index 8028b0941..1436006fa 100644 --- a/src/main/java/org/redkale/net/client/ClientWriteThread.java +++ b/src/main/java/org/redkale/net/client/ClientWriteThread.java @@ -51,7 +51,7 @@ public class ClientWriteThread extends Thread { list.add(respFuture); } } - conn.sendRequestToChannel(list.toArray(new ClientFuture[list.size()])); + conn.sendRequestToChannel(ClientFuture.array(list)); list.clear(); if (over) { return;