This commit is contained in:
Redkale
2021-01-12 20:54:23 +08:00
parent 6233a0b960
commit 2aee6cab20
4 changed files with 30 additions and 4 deletions

View File

@@ -6,7 +6,10 @@
package org.redkale.mq;
import java.nio.ByteBuffer;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.redkale.net.sncp.*;
import org.redkale.util.Utility;
/**
*
@@ -28,4 +31,13 @@ public class SncpMessageRequest extends SncpRequest {
readHeader(ByteBuffer.wrap(message.getContent()));
}
@Override //被SncpAsyncHandler.sncp_setParams调用
protected void sncp_setParams(SncpDynServlet.SncpServletAction action, Logger logger, Object... params) {
if (message.localattach != null) return;
if (logger.isLoggable(Level.FINER)) {
message.attach(Utility.append(new Object[]{action.actionName()}, params));
} else {
message.attach(params);
}
}
}

View File

@@ -8,6 +8,7 @@ package org.redkale.net.sncp;
import org.redkale.asm.MethodDebugVisitor;
import java.nio.channels.CompletionHandler;
import java.util.concurrent.CompletableFuture;
import java.util.logging.Logger;
import java.util.logging.Level;
import org.redkale.asm.*;
import static org.redkale.asm.Opcodes.*;
@@ -258,7 +259,10 @@ public interface SncpAsyncHandler<V, A> extends CompletionHandler<V, A> {
protected CompletableFuture future;
public DefaultSncpAsyncHandler(SncpServletAction action, BsonReader in, BsonWriter out, SncpRequest request, SncpResponse response) {
protected Logger logger;
public DefaultSncpAsyncHandler(Logger logger, SncpServletAction action, BsonReader in, BsonWriter out, SncpRequest request, SncpResponse response) {
this.logger = logger;
this.action = action;
this.in = in;
this.out = out;
@@ -294,6 +298,7 @@ public interface SncpAsyncHandler<V, A> extends CompletionHandler<V, A> {
@Override
public void sncp_setParams(Object... params) {
this.params = params;
this.request.sncp_setParams(this.action, this.logger, params);
}
@Override

View File

@@ -128,17 +128,17 @@ public final class SncpDynServlet extends SncpServlet {
try {
if (action.handlerFuncParamIndex >= 0) {
if (action.handlerFuncParamClass == CompletionHandler.class) {
handler = new DefaultSncpAsyncHandler(action, in, out, request, response);
handler = new DefaultSncpAsyncHandler(logger, action, in, out, request, response);
} else {
Creator<SncpAsyncHandler> creator = action.handlerCreator;
if (creator == null) {
creator = SncpAsyncHandler.Factory.createCreator(action.handlerFuncParamClass);
action.handlerCreator = creator;
}
handler = creator.create(new DefaultSncpAsyncHandler(action, in, out, request, response));
handler = creator.create(new DefaultSncpAsyncHandler(logger, action, in, out, request, response));
}
} else if (action.boolReturnTypeFuture) {
handler = new DefaultSncpAsyncHandler(action, in, out, request, response);
handler = new DefaultSncpAsyncHandler(logger, action, in, out, request, response);
}
in.setBytes(request.getBody());
action.action(in, out, handler);
@@ -208,6 +208,10 @@ public final class SncpDynServlet extends SncpServlet {
out.writeByte((byte) 0);
}
public String actionName() {
return method.getDeclaringClass().getSimpleName() + "." + method.getName();
}
/**
* <blockquote><pre>
* public class TestService implements Service {

View File

@@ -8,6 +8,7 @@ package org.redkale.net.sncp;
import java.net.*;
import java.nio.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.redkale.convert.bson.*;
import org.redkale.net.*;
import org.redkale.util.*;
@@ -98,6 +99,10 @@ public class SncpRequest extends Request<SncpContext> {
this.keepAlive = true;
}
//被SncpAsyncHandler.sncp_setParams调用
protected void sncp_setParams(SncpDynServlet.SncpServletAction action, Logger logger, Object... params) {
}
@Override
public String toString() {
return SncpRequest.class.getSimpleName() + "{seqid=" + this.seqid