【发布时间】:2018-06-15 04:50:32
【问题描述】:
[FunctionName("MyProcess")]
public static void Run(BrokeredMessage currentMessage,[ServiceBus("mytopic",
Connection = "ConnServiceBus")]ICollector<BrokeredMessage> mytopicDemo, TraceWriter log)
{
string messageBody = currentMessage.GetBody<string>();
BrokeredMessage brokeredMessage = new BrokeredMessage(result);
//extracted Id and Name from body using some code for simplicity making it as messageBody.Id and messageBody.Name
brokeredMessage.Properties.Add("Id", messageBody.Id);
brokeredMessage.Properties.Add("Name", messageBody.Name);
brokeredMessage.MessageId = "ZZ"; // I also tried GUID here messageBody.Id
mytopicDemo.Add(brokeredMessage);
...
服务总线无法识别重复的 messageId 消息。
为什么要为同一个messageId插入多条记录?
【问题讨论】:
-
可能是一个愚蠢的问题,但主题是否启用了重复检测,您是否会在短时间内陆续发送重复?
-
@Mikhail 我会把这个留给你。这个api我没用过
-
@Mikhail 重复检测已启用,但奇怪的是为什么不能正常工作:( 我创建了新主题只是为了使用相同的重复检测设置进行测试,它可以检测到重复但这个旧主题无法识别重复。
-
@Neo 这个问题在那个老话题上是否可以可靠地重现?还是只发生过一次?会不会是检测到了重复,但同一条消息被处理了两次(由于重试或 smth)?
-
没有检测到重复..我发送了 2 条具有相同 messageId 的消息,我可以看到这 2 条消息插入到具有相同 MessageId 的主题中,这是不应该发生的。因为我们已经有了带有该 messageId 的消息
标签: c# azure azureservicebus servicebus