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; package org.redkale.mq;
import java.nio.ByteBuffer; import java.nio.ByteBuffer;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.redkale.net.sncp.*; import org.redkale.net.sncp.*;
import org.redkale.util.Utility;
/** /**
* *
@@ -28,4 +31,13 @@ public class SncpMessageRequest extends SncpRequest {
readHeader(ByteBuffer.wrap(message.getContent())); 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 org.redkale.asm.MethodDebugVisitor;
import java.nio.channels.CompletionHandler; import java.nio.channels.CompletionHandler;
import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletableFuture;
import java.util.logging.Logger;
import java.util.logging.Level; import java.util.logging.Level;
import org.redkale.asm.*; import org.redkale.asm.*;
import static org.redkale.asm.Opcodes.*; import static org.redkale.asm.Opcodes.*;
@@ -258,7 +259,10 @@ public interface SncpAsyncHandler<V, A> extends CompletionHandler<V, A> {
protected CompletableFuture future; 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.action = action;
this.in = in; this.in = in;
this.out = out; this.out = out;
@@ -294,6 +298,7 @@ public interface SncpAsyncHandler<V, A> extends CompletionHandler<V, A> {
@Override @Override
public void sncp_setParams(Object... params) { public void sncp_setParams(Object... params) {
this.params = params; this.params = params;
this.request.sncp_setParams(this.action, this.logger, params);
} }
@Override @Override

View File

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

View File

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