Skip to content

Commit 623966f

Browse files
committed
Add support for custom message id. #668
1 parent 01053b1 commit 623966f

File tree

1 file changed

+10
-9
lines changed

1 file changed

+10
-9
lines changed

src/DotNetCore.CAP/Internal/ICapPublisher.Default.cs

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -63,21 +63,22 @@ public void Publish<T>(string name, T value, IDictionary<string, string> headers
6363
throw new ArgumentNullException(nameof(name));
6464
}
6565

66-
if (headers == null)
66+
headers ??= new Dictionary<string, string>();
67+
68+
if (!headers.ContainsKey(Headers.MessageId))
6769
{
68-
headers = new Dictionary<string, string>();
70+
var messageId = SnowflakeId.Default().NextId().ToString();
71+
headers.Add(Headers.MessageId, messageId);
6972
}
70-
71-
var messageId = SnowflakeId.Default().NextId().ToString();
72-
headers.Add(Headers.MessageId, messageId);
73-
headers.Add(Headers.MessageName, name);
74-
headers.Add(Headers.Type, typeof(T).Name);
75-
headers.Add(Headers.SentTime, DateTimeOffset.Now.ToString());
73+
7674
if (!headers.ContainsKey(Headers.CorrelationId))
7775
{
78-
headers.Add(Headers.CorrelationId, messageId);
76+
headers.Add(Headers.CorrelationId, headers[Headers.MessageId]);
7977
headers.Add(Headers.CorrelationSequence, 0.ToString());
8078
}
79+
headers.Add(Headers.MessageName, name);
80+
headers.Add(Headers.Type, typeof(T).Name);
81+
headers.Add(Headers.SentTime, DateTimeOffset.Now.ToString());
8182

8283
var message = new Message(headers, value);
8384

0 commit comments

Comments
 (0)