You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by aa...@apache.org on 2022/12/27 14:05:13 UTC
[rocketmq-clients] 02/03: Align dotnet Producer on BornTimestamp/QueueId with other languages
This is an automated email from the ASF dual-hosted git repository.
aaronai pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/rocketmq-clients.git
commit cd456333b960b6ee4d74572b9959b4ba673f9bb6
Author: colprog <co...@gmail.com>
AuthorDate: Fri Dec 23 03:26:34 2022 +0800
Align dotnet Producer on BornTimestamp/QueueId with other languages
---
csharp/rocketmq-client-csharp/Producer.cs | 48 +++++++++++--------------------
1 file changed, 17 insertions(+), 31 deletions(-)
diff --git a/csharp/rocketmq-client-csharp/Producer.cs b/csharp/rocketmq-client-csharp/Producer.cs
index 39e39b8e..69a4b118 100644
--- a/csharp/rocketmq-client-csharp/Producer.cs
+++ b/csharp/rocketmq-client-csharp/Producer.cs
@@ -128,22 +128,17 @@ namespace Org.Apache.Rocketmq
{
ResourceNamespace = resourceNamespace(),
Name = message.Topic
- }
+ },
+ UserProperties = { message.UserProperties },
+ SystemProperties = new rmq::SystemProperties
+ {
+ MessageId = message.MessageId,
+ MessageType = rmq::MessageType.Normal,
+ Keys = { message.Keys },
+ },
};
request.Messages.Add(entry);
- // User properties
- foreach (var item in message.UserProperties)
- {
- entry.UserProperties.Add(item.Key, item.Value);
- }
-
- entry.SystemProperties = new rmq::SystemProperties
- {
- MessageId = message.MessageId,
- MessageType = rmq::MessageType.Normal
- };
-
if (DateTime.MinValue != message.DeliveryTimestamp)
{
entry.SystemProperties.MessageType = rmq::MessageType.Delay;
@@ -154,39 +149,30 @@ namespace Org.Apache.Rocketmq
Logger.Warn("A message may not be FIFO and delayed at the same time");
throw new MessageException("A message may not be both FIFO and Timed");
}
- } else if (!String.IsNullOrEmpty(message.MessageGroup))
+ }
+ else if (!String.IsNullOrEmpty(message.MessageGroup))
{
entry.SystemProperties.MessageType = rmq::MessageType.Fifo;
entry.SystemProperties.MessageGroup = message.MessageGroup;
}
-
+
if (!string.IsNullOrEmpty(message.Tag))
{
entry.SystemProperties.Tag = message.Tag;
}
- if (0 != message.Keys.Count)
- {
- foreach (var key in message.Keys)
- {
- entry.SystemProperties.Keys.Add(key);
- }
- }
-
- List<string> targets = new List<string>();
- List<rmq::MessageQueue> candidates = publishLb.Select(message.MessageGroup, message.MaxAttemptTimes);
- foreach (var messageQueue in candidates)
- {
- targets.Add(Utilities.TargetUrl(messageQueue));
- }
-
var metadata = new Metadata();
Signature.Sign(this, metadata);
Exception ex = null;
- foreach (var target in targets)
+ var candidates = publishLb.Select(message.MessageGroup, message.MaxAttemptTimes);
+ foreach (var messageQueue in candidates)
{
+ var target = Utilities.TargetUrl(messageQueue);
+ entry.SystemProperties.BornTimestamp = Timestamp.FromDateTimeOffset(DateTimeOffset.UtcNow);
+ entry.SystemProperties.QueueId = messageQueue.Id;
+
try
{
var stopWatch = new Stopwatch();