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