ClientCodec优化

This commit is contained in:
redkale
2023-11-17 19:35:15 +08:00
parent b256db65d4
commit 044e6c8b7a
3 changed files with 6 additions and 4 deletions

View File

@@ -83,7 +83,7 @@ public abstract class ClientCodec<R extends ClientRequest, P extends ClientResul
messageListener.onMessage(connection, cr);
respPool.accept(cr);
} else {
ClientFuture<R, P> respFuture = connection.pollRespFuture(cr.getRequestid());
ClientFuture respFuture = connection.pollRespFuture(cr.getRequestid());
if (respFuture != null) {
if (respFuture.request != cr.request) {
connection.dispose(new RedkaleException("request pipeline error"));
@@ -116,7 +116,7 @@ public abstract class ClientCodec<R extends ClientRequest, P extends ClientResul
}
}
void responseComplete(boolean halfCompleted, ClientFuture<R, P> respFuture, P message, Throwable exc) {
void responseComplete(boolean halfCompleted, ClientFuture<R, Object> respFuture, P message, Throwable exc) {
R request = respFuture.request;
Traces.currentTraceid(request.getTraceid());
AsyncIOThread readThread = connection.channel.getReadIOThread();
@@ -144,7 +144,7 @@ public abstract class ClientCodec<R extends ClientRequest, P extends ClientResul
connection.preComplete(message, (R) request, exc);
if (exc == null) {
final P rs = request.respTransfer == null ? message : (P) request.respTransfer.apply(message);
final Object rs = request.respTransfer == null ? message : request.respTransfer.apply(message);
if (workThread == null) {
readThread.runWork(() -> {
Traces.currentTraceid(request.traceid);

View File

@@ -30,7 +30,7 @@ public abstract class ClientRequest {
protected String traceid;
//只会在ClientCodec的读线程里调用
//只会在ClientCodec的读线程里调用, 将ClientResult转成最终结果对象
Function respTransfer;
public abstract void writeTo(ClientConnection conn, ByteArray array);

View File

@@ -6,6 +6,7 @@
package org.redkale.net.client;
import java.io.Serializable;
import org.redkale.annotation.Nullable;
/**
*
@@ -21,6 +22,7 @@ import java.io.Serializable;
*/
public class ClientResponse<R extends ClientRequest, P extends ClientResult> {
@Nullable
protected R request; //服务端返回一个不存在的requestid可能为null
protected P message;