diff --git a/src/main/java/org/redkale/net/client/ClientCodec.java b/src/main/java/org/redkale/net/client/ClientCodec.java index c958bed78..c9f0ff294 100644 --- a/src/main/java/org/redkale/net/client/ClientCodec.java +++ b/src/main/java/org/redkale/net/client/ClientCodec.java @@ -120,7 +120,7 @@ public abstract class ClientCodec { - Traces.currentTraceid(request.traceid); - respFuture.complete(rs); - Traces.removeTraceid(); - }); - } else if (workThread.getState() == Thread.State.RUNNABLE) { //fullCache时state不是RUNNABLE - if (workThread.inIO()) { - Traces.currentTraceid(request.traceid); - respFuture.complete(rs); - Traces.removeTraceid(); - } else { - workThread.execute(() -> { - Traces.currentTraceid(request.traceid); - respFuture.complete(rs); - Traces.removeTraceid(); - }); - } + if (workThread.inIO() && workThread.getState() == Thread.State.RUNNABLE) { //fullCache时state不是RUNNABLE + Traces.currentTraceid(request.traceid); + respFuture.complete(rs); + Traces.removeTraceid(); } else { - Utility.execute(() -> { + workThread.runWork(() -> { Traces.currentTraceid(request.traceid); respFuture.complete(rs); Traces.removeTraceid(); }); } } else { //异常 - if (workThread == null) { - readThread.runWork(() -> { - Traces.currentTraceid(request.traceid); - respFuture.completeExceptionally(exc); - Traces.removeTraceid(); - }); - } else if (workThread.getState() == Thread.State.RUNNABLE) { //fullCache时state不是RUNNABLE - if (workThread.inIO()) { - Traces.currentTraceid(request.traceid); - respFuture.completeExceptionally(exc); - Traces.removeTraceid(); - } else { - workThread.execute(() -> { - Traces.currentTraceid(request.traceid); - respFuture.completeExceptionally(exc); - Traces.removeTraceid(); - }); - } + if (workThread.inIO() && workThread.getState() == Thread.State.RUNNABLE) { //fullCache时state不是RUNNABLE + Traces.currentTraceid(request.traceid); + respFuture.completeExceptionally(exc); + Traces.removeTraceid(); } else { - Utility.execute(() -> { + workThread.runWork(() -> { Traces.currentTraceid(request.traceid); respFuture.completeExceptionally(exc); Traces.removeTraceid(); @@ -198,26 +170,12 @@ public abstract class ClientCodec { - Traces.currentTraceid(request.traceid); - respFuture.completeExceptionally(t); - Traces.removeTraceid(); - }); - } else if (workThread.getState() == Thread.State.RUNNABLE) { //fullCache时state不是RUNNABLE - if (workThread.inIO()) { - Traces.currentTraceid(request.traceid); - respFuture.completeExceptionally(t); - Traces.removeTraceid(); - } else { - workThread.execute(() -> { - Traces.currentTraceid(request.traceid); - respFuture.completeExceptionally(t); - Traces.removeTraceid(); - }); - } + if (workThread.inIO() && workThread.getState() == Thread.State.RUNNABLE) { //fullCache时state不是RUNNABLE + Traces.currentTraceid(request.traceid); + respFuture.completeExceptionally(t); + Traces.removeTraceid(); } else { - Utility.execute(() -> { + workThread.runWork(() -> { Traces.currentTraceid(request.traceid); respFuture.completeExceptionally(t); Traces.removeTraceid();