From 0ae469d8e255b7852df9911858d285a4782445ab Mon Sep 17 00:00:00 2001 From: Redkale <8730487+redkale@users.noreply.github.com> Date: Tue, 12 Jan 2021 18:38:10 +0800 Subject: [PATCH] --- src/org/redkale/mq/MessageRecord.java | 17 ++++++++++++++--- src/org/redkale/net/sncp/SncpClient.java | 6 ++++++ 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/src/org/redkale/mq/MessageRecord.java b/src/org/redkale/mq/MessageRecord.java index c82b8d681..f234321fe 100644 --- a/src/org/redkale/mq/MessageRecord.java +++ b/src/org/redkale/mq/MessageRecord.java @@ -8,6 +8,7 @@ package org.redkale.mq; import java.io.Serializable; import java.nio.charset.StandardCharsets; import org.redkale.convert.*; +import org.redkale.convert.json.JsonConvert; import org.redkale.util.Comment; /** @@ -72,6 +73,9 @@ public class MessageRecord implements Serializable { @Comment("消息内容的类型") protected byte ctype; + @Comment("本地附加对象,不会被序列化") + protected Object localattach; + public MessageRecord() { } @@ -100,6 +104,11 @@ public class MessageRecord implements Serializable { return content == null ? null : new String(content, StandardCharsets.UTF_8); } + public MessageRecord attach(Object attach) { + this.localattach = attach; + return this; + } + @ConvertDisabled public boolean isEmptyTopic() { return this.topic == null || this.topic.isEmpty(); @@ -266,11 +275,13 @@ public class MessageRecord implements Serializable { if (this.resptopic != null) sb.append(",\"resptopic\":\"").append(this.resptopic).append("\""); if (this.content != null) { if (this.ctype == CTYPE_HTTP_REQUEST) { - sb.append(",\"content\":").append(HttpSimpleRequestCoder.getInstance().decode(this.content)).append("\""); + sb.append(",\"content\":").append(HttpSimpleRequestCoder.getInstance().decode(this.content)); } else if (this.ctype == CTYPE_HTTP_RESULT) { - sb.append(",\"content\":").append(HttpResultCoder.getInstance().decode(this.content)).append("\""); + sb.append(",\"content\":").append(HttpResultCoder.getInstance().decode(this.content)); + } else if (localattach != null) { + sb.append(",\"attach\":").append(JsonConvert.root().convertTo(localattach)); } else { - sb.append(",\"content\":").append(new String(this.content, StandardCharsets.UTF_8)).append("\""); + sb.append(",\"content\":\"").append(new String(this.content, StandardCharsets.UTF_8)).append("\""); } } sb.append("}"); diff --git a/src/org/redkale/net/sncp/SncpClient.java b/src/org/redkale/net/sncp/SncpClient.java index 0c0b141df..e9140b4a5 100644 --- a/src/org/redkale/net/sncp/SncpClient.java +++ b/src/org/redkale/net/sncp/SncpClient.java @@ -289,6 +289,12 @@ public final class SncpClient { if (targetTopic == null) targetTopic = this.topic; MessageRecord message = messageClient.createMessageRecord(targetTopic, null, reqbytes); final String tt = targetTopic; + if (logger.isLoggable(Level.FINER)) { + Object n = action.method.getDeclaringClass().getSimpleName() + "." + action.method.getName(); + message.attach(Utility.append(new Object[]{n}, params)); + } else { + message.attach(params); + } return messageClient.sendMessage(message).thenApply(msg -> { if (msg == null || msg.getContent() == null) { logger.log(Level.SEVERE, action.method + " sncp mq(params: " + convert.convertTo(params) + ", message: " + message + ") deal error, this.topic = " + this.topic + ", targetTopic = " + tt + ", result = " + msg);