From 3cf560f22071c1132e3dfb05bdc25ed3019c002f Mon Sep 17 00:00:00 2001 From: redkale Date: Tue, 28 Mar 2023 23:31:45 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8DEntityCache?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/org/redkale/net/client/ClientCodec.java | 6 +++--- src/main/java/org/redkale/net/client/ClientConnection.java | 2 +- src/main/java/org/redkale/source/EntityCache.java | 7 +------ 3 files changed, 5 insertions(+), 10 deletions(-) diff --git a/src/main/java/org/redkale/net/client/ClientCodec.java b/src/main/java/org/redkale/net/client/ClientCodec.java index b9fcd6667..e3abd833f 100644 --- a/src/main/java/org/redkale/net/client/ClientCodec.java +++ b/src/main/java/org/redkale/net/client/ClientCodec.java @@ -123,7 +123,7 @@ public abstract class ClientCodec implements Complet connection.preComplete(message, (R) request, exc); if (exc != null) { - if (workThread.inIO()) { + if (workThread.inIO() && workThread.getState() == Thread.State.RUNNABLE) { workThread.execute(() -> { Traces.currTraceid(request.traceid); respFuture.completeExceptionally(exc); @@ -136,7 +136,7 @@ public abstract class ClientCodec implements Complet } } else { final Object rs = request.respTransfer == null ? message : request.respTransfer.apply(message); - if (workThread.inIO()) { + if (workThread.inIO() && workThread.getState() == Thread.State.RUNNABLE) { workThread.execute(() -> { Traces.currTraceid(request.traceid); ((ClientFuture) respFuture).complete(rs); @@ -149,7 +149,7 @@ public abstract class ClientCodec implements Complet } } } catch (Throwable t) { - if (workThread.inIO()) { + if (workThread.inIO() && workThread.getState() == Thread.State.RUNNABLE) { workThread.execute(() -> { Traces.currTraceid(request.traceid); respFuture.completeExceptionally(t); diff --git a/src/main/java/org/redkale/net/client/ClientConnection.java b/src/main/java/org/redkale/net/client/ClientConnection.java index 801bb6972..e24563734 100644 --- a/src/main/java/org/redkale/net/client/ClientConnection.java +++ b/src/main/java/org/redkale/net/client/ClientConnection.java @@ -90,7 +90,7 @@ public abstract class ClientConnection implements Co respFuture.setTimeout(client.timeoutScheduler.schedule(respFuture, rts, TimeUnit.SECONDS)); } respWaitingCounter.increment(); //放在writeChannelInWriteThread计数会延迟,导致不准确 - if (channel.inCurrWriteThread()) { + if (true || channel.inCurrWriteThread()) { //临时屏蔽 writeChannelInThread(request, respFuture); } else { channel.executeWrite(() -> writeChannelInThread(request, respFuture)); diff --git a/src/main/java/org/redkale/source/EntityCache.java b/src/main/java/org/redkale/source/EntityCache.java index b04b9541d..cdd421bb9 100644 --- a/src/main/java/org/redkale/source/EntityCache.java +++ b/src/main/java/org/redkale/source/EntityCache.java @@ -131,12 +131,7 @@ public final class EntityCache { public void fullLoad() { CompletableFuture> future = fullLoadAsync(); if (future != null) { - //future.join(); - try { - future.get(1, TimeUnit.SECONDS); - } catch (Exception e) { - e.printStackTrace(); - } + future.join(); } }