优化client
This commit is contained in:
@@ -67,6 +67,7 @@ public abstract class ClientCodec<R extends ClientRequest, P> implements Complet
|
||||
connection.currRespIterator = null;
|
||||
readArray.clear();
|
||||
for (ClientResponse<R, P> cr : respResults) {
|
||||
connection.doneResponseCounter.increment();
|
||||
if (cr.isError()) {
|
||||
connection.dispose(null);
|
||||
return;
|
||||
|
||||
@@ -33,6 +33,10 @@ public abstract class ClientConnection<R extends ClientRequest, P> implements Co
|
||||
|
||||
protected final LongAdder respWaitingCounter;
|
||||
|
||||
protected final LongAdder doneRequestCounter = new LongAdder();
|
||||
|
||||
protected final LongAdder doneResponseCounter = new LongAdder();
|
||||
|
||||
final AtomicBoolean pauseWriting = new AtomicBoolean();
|
||||
|
||||
final ConcurrentLinkedQueue<ClientFuture> pauseRequests = new ConcurrentLinkedQueue<>();
|
||||
@@ -187,6 +191,14 @@ public abstract class ClientConnection<R extends ClientRequest, P> implements Co
|
||||
return channel;
|
||||
}
|
||||
|
||||
public long getDoneRequestCounter() {
|
||||
return doneRequestCounter.longValue();
|
||||
}
|
||||
|
||||
public long getDoneResponseCounter() {
|
||||
return doneResponseCounter.longValue();
|
||||
}
|
||||
|
||||
public <C extends ClientCodec<R, P>> C getCodec() {
|
||||
return (C) codec;
|
||||
}
|
||||
|
||||
@@ -103,6 +103,7 @@ public class ClientWriteIOThread extends AsyncIOThread {
|
||||
++i;
|
||||
ClientRequest request = en.request;
|
||||
request.writeTo(conn, writeArray);
|
||||
conn.doneRequestCounter.increment();
|
||||
if (!request.isCompleted()) {
|
||||
conn.pauseWriting.set(true);
|
||||
conn.pauseRequests.addAll(list.subList(i, list.size()));
|
||||
|
||||
Reference in New Issue
Block a user