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(); } }