EntityCache临时屏蔽
This commit is contained in:
@@ -293,7 +293,7 @@ public abstract class Response<C extends Context, R extends Request<C>> {
|
|||||||
AsyncConnection conn = removeChannel();
|
AsyncConnection conn = removeChannel();
|
||||||
if (conn != null && conn.protocolCodec != null) {
|
if (conn != null && conn.protocolCodec != null) {
|
||||||
this.responseConsumer.accept(this);
|
this.responseConsumer.accept(this);
|
||||||
conn.readInIOThreadSafe(conn.protocolCodec);
|
conn.readRegisterInIOThreadSafe(conn.protocolCodec);
|
||||||
} else {
|
} else {
|
||||||
Supplier<Response> poolSupplier = this.responseSupplier;
|
Supplier<Response> poolSupplier = this.responseSupplier;
|
||||||
Consumer<Response> poolConsumer = this.responseConsumer;
|
Consumer<Response> poolConsumer = this.responseConsumer;
|
||||||
|
|||||||
@@ -81,12 +81,12 @@ public abstract class ClientCodec<R extends ClientRequest, P> implements Complet
|
|||||||
}
|
}
|
||||||
respResults.clear();
|
respResults.clear();
|
||||||
|
|
||||||
if (buffer.hasRemaining()) {
|
if (buffer.hasRemaining()) { //还有响应数据包
|
||||||
decodeResponse(buffer);
|
decodeResponse(buffer);
|
||||||
} else { //队列都已处理完了
|
} else { //队列都已处理完了
|
||||||
buffer.clear();
|
buffer.clear();
|
||||||
channel.setReadBuffer(buffer);
|
channel.setReadBuffer(buffer);
|
||||||
channel.read(this);
|
channel.readRegister(this);
|
||||||
}
|
}
|
||||||
} else { //数据不全, 继续读
|
} else { //数据不全, 继续读
|
||||||
connection.currRespIterator = null;
|
connection.currRespIterator = null;
|
||||||
@@ -100,9 +100,9 @@ public abstract class ClientCodec<R extends ClientRequest, P> implements Complet
|
|||||||
if (respFuture != null) {
|
if (respFuture != null) {
|
||||||
R request = respFuture.request;
|
R request = respFuture.request;
|
||||||
AsyncIOThread readThread = connection.channel.getReadIOThread();
|
AsyncIOThread readThread = connection.channel.getReadIOThread();
|
||||||
final WorkThread workThread = request == null ? readThread : request.removeWorkThread(readThread);
|
final WorkThread workThread = request.removeWorkThread(readThread);
|
||||||
try {
|
try {
|
||||||
if (!halfCompleted && request != null && !request.isCompleted()) {
|
if (!halfCompleted && !request.isCompleted()) {
|
||||||
if (exc == null) {
|
if (exc == null) {
|
||||||
connection.sendHalfWrite(request, exc);
|
connection.sendHalfWrite(request, exc);
|
||||||
//request没有发送完,respFuture需要再次接收
|
//request没有发送完,respFuture需要再次接收
|
||||||
@@ -125,33 +125,25 @@ public abstract class ClientCodec<R extends ClientRequest, P> implements Complet
|
|||||||
if (exc != null) {
|
if (exc != null) {
|
||||||
if (workThread.inIO()) {
|
if (workThread.inIO()) {
|
||||||
workThread.execute(() -> {
|
workThread.execute(() -> {
|
||||||
if (request != null) {
|
|
||||||
Traces.currTraceid(request.traceid);
|
Traces.currTraceid(request.traceid);
|
||||||
}
|
|
||||||
respFuture.completeExceptionally(exc);
|
respFuture.completeExceptionally(exc);
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
workThread.runWork(() -> {
|
workThread.runWork(() -> {
|
||||||
if (request != null) {
|
|
||||||
Traces.currTraceid(request.traceid);
|
Traces.currTraceid(request.traceid);
|
||||||
}
|
|
||||||
respFuture.completeExceptionally(exc);
|
respFuture.completeExceptionally(exc);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
final Object rs = request == null || request.respTransfer == null ? message : request.respTransfer.apply(message);
|
final Object rs = request.respTransfer == null ? message : request.respTransfer.apply(message);
|
||||||
if (workThread.inIO()) {
|
if (workThread.inIO()) {
|
||||||
workThread.execute(() -> {
|
workThread.execute(() -> {
|
||||||
if (request != null) {
|
|
||||||
Traces.currTraceid(request.traceid);
|
Traces.currTraceid(request.traceid);
|
||||||
}
|
|
||||||
((ClientFuture) respFuture).complete(rs);
|
((ClientFuture) respFuture).complete(rs);
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
workThread.runWork(() -> {
|
workThread.runWork(() -> {
|
||||||
if (request != null) {
|
|
||||||
Traces.currTraceid(request.traceid);
|
Traces.currTraceid(request.traceid);
|
||||||
}
|
|
||||||
((ClientFuture) respFuture).complete(rs);
|
((ClientFuture) respFuture).complete(rs);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -159,16 +151,12 @@ public abstract class ClientCodec<R extends ClientRequest, P> implements Complet
|
|||||||
} catch (Throwable t) {
|
} catch (Throwable t) {
|
||||||
if (workThread.inIO()) {
|
if (workThread.inIO()) {
|
||||||
workThread.execute(() -> {
|
workThread.execute(() -> {
|
||||||
if (request != null) {
|
|
||||||
Traces.currTraceid(request.traceid);
|
Traces.currTraceid(request.traceid);
|
||||||
}
|
|
||||||
respFuture.completeExceptionally(t);
|
respFuture.completeExceptionally(t);
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
workThread.runWork(() -> {
|
workThread.runWork(() -> {
|
||||||
if (request != null) {
|
|
||||||
Traces.currTraceid(request.traceid);
|
Traces.currTraceid(request.traceid);
|
||||||
}
|
|
||||||
respFuture.completeExceptionally(t);
|
respFuture.completeExceptionally(t);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,11 +5,11 @@
|
|||||||
*/
|
*/
|
||||||
package org.redkale.source;
|
package org.redkale.source;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.Serializable;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.*;
|
import java.util.concurrent.*;
|
||||||
import java.util.concurrent.atomic.*;
|
import java.util.concurrent.atomic.*;
|
||||||
import java.util.concurrent.locks.*;
|
import java.util.concurrent.locks.ReentrantLock;
|
||||||
import java.util.function.*;
|
import java.util.function.*;
|
||||||
import java.util.logging.*;
|
import java.util.logging.*;
|
||||||
import java.util.stream.*;
|
import java.util.stream.*;
|
||||||
@@ -131,7 +131,12 @@ public final class EntityCache<T> {
|
|||||||
public void fullLoad() {
|
public void fullLoad() {
|
||||||
CompletableFuture<List<T>> future = fullLoadAsync();
|
CompletableFuture<List<T>> future = fullLoadAsync();
|
||||||
if (future != null) {
|
if (future != null) {
|
||||||
future.join();
|
//future.join();
|
||||||
|
try {
|
||||||
|
future.get(1, TimeUnit.SECONDS);
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user