优化traces
This commit is contained in:
@@ -103,7 +103,8 @@ public class Context {
|
||||
this.bsonFactory = BsonFactory.root();
|
||||
}
|
||||
|
||||
protected void executeDispatch(Request request, Response response) {
|
||||
protected final void executeDispatch(Request request, Response response) {
|
||||
request.traceid = Traces.computeIfAbsent(request.getTraceid());
|
||||
dispatcher.dispatch(request, response);
|
||||
}
|
||||
|
||||
@@ -112,7 +113,7 @@ public class Context {
|
||||
response.updateNonBlocking(false);
|
||||
workExecutor.execute(() -> {
|
||||
try {
|
||||
Traces.computeCurrTraceid(request.getTraceid());
|
||||
request.traceid = Traces.computeIfAbsent(request.getTraceid());
|
||||
servlet.execute(request, response);
|
||||
} catch (Throwable t) {
|
||||
response.context.logger.log(Level.WARNING, "Execute servlet occur exception. request = " + request, t);
|
||||
@@ -121,7 +122,7 @@ public class Context {
|
||||
});
|
||||
} else {
|
||||
try {
|
||||
Traces.computeCurrTraceid(request.getTraceid());
|
||||
request.traceid = Traces.computeIfAbsent(request.getTraceid());
|
||||
servlet.execute(request, response);
|
||||
} catch (Throwable t) {
|
||||
response.context.logger.log(Level.WARNING, "Execute servlet occur exception. request = " + request, t);
|
||||
|
||||
@@ -13,7 +13,7 @@ import java.util.function.*;
|
||||
import java.util.logging.Level;
|
||||
import java.util.stream.Stream;
|
||||
import org.redkale.boot.Application;
|
||||
import org.redkale.util.*;
|
||||
import org.redkale.util.AnyValue;
|
||||
|
||||
/**
|
||||
* 根Servlet, 一个Server只能存在一个根Servlet
|
||||
@@ -291,7 +291,6 @@ public abstract class DispatcherServlet<K extends Serializable, C extends Contex
|
||||
|
||||
public final void dispatch(final R request, final P response) {
|
||||
try {
|
||||
Traces.computeCurrTraceid(request.getTraceid());
|
||||
request.prepare();
|
||||
response.filter = this.headFilter;
|
||||
response.servlet = this;
|
||||
|
||||
@@ -125,17 +125,17 @@ public abstract class ClientCodec<R extends ClientRequest, P> implements Complet
|
||||
if (exc != null) {
|
||||
if (workThread.getState() == Thread.State.RUNNABLE) { //fullCache时state不是RUNNABLE
|
||||
if (workThread.inIO()) {
|
||||
Traces.currentTraceid(request.traceid);
|
||||
Traces.computeIfAbsent(request.traceid);
|
||||
respFuture.completeExceptionally(exc);
|
||||
} else {
|
||||
workThread.execute(() -> {
|
||||
Traces.currentTraceid(request.traceid);
|
||||
Traces.computeIfAbsent(request.traceid);
|
||||
respFuture.completeExceptionally(exc);
|
||||
});
|
||||
}
|
||||
} else {
|
||||
workThread.runWork(() -> {
|
||||
Traces.currentTraceid(request.traceid);
|
||||
Traces.computeIfAbsent(request.traceid);
|
||||
respFuture.completeExceptionally(exc);
|
||||
});
|
||||
}
|
||||
@@ -143,17 +143,17 @@ public abstract class ClientCodec<R extends ClientRequest, P> implements Complet
|
||||
final P rs = request.respTransfer == null ? message : (P) request.respTransfer.apply(message);
|
||||
if (workThread.getState() == Thread.State.RUNNABLE) { //fullCache时state不是RUNNABLE
|
||||
if (workThread.inIO()) {
|
||||
Traces.currentTraceid(request.traceid);
|
||||
Traces.computeIfAbsent(request.traceid);
|
||||
respFuture.complete(rs);
|
||||
} else {
|
||||
workThread.execute(() -> {
|
||||
Traces.currentTraceid(request.traceid);
|
||||
Traces.computeIfAbsent(request.traceid);
|
||||
respFuture.complete(rs);
|
||||
});
|
||||
}
|
||||
} else {
|
||||
workThread.runWork(() -> {
|
||||
Traces.currentTraceid(request.traceid);
|
||||
Traces.computeIfAbsent(request.traceid);
|
||||
respFuture.complete(rs);
|
||||
});
|
||||
}
|
||||
@@ -161,17 +161,17 @@ public abstract class ClientCodec<R extends ClientRequest, P> implements Complet
|
||||
} catch (Throwable t) {
|
||||
if (workThread.getState() == Thread.State.RUNNABLE) { //fullCache时state不是RUNNABLE
|
||||
if (workThread.inIO()) {
|
||||
Traces.currentTraceid(request.traceid);
|
||||
Traces.computeIfAbsent(request.traceid);
|
||||
respFuture.completeExceptionally(t);
|
||||
} else {
|
||||
workThread.execute(() -> {
|
||||
Traces.currentTraceid(request.traceid);
|
||||
Traces.computeIfAbsent(request.traceid);
|
||||
respFuture.completeExceptionally(t);
|
||||
});
|
||||
}
|
||||
} else {
|
||||
workThread.runWork(() -> {
|
||||
Traces.currentTraceid(request.traceid);
|
||||
Traces.computeIfAbsent(request.traceid);
|
||||
respFuture.completeExceptionally(t);
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user