【问题标题】:Issue with DuplicateDetectionHistoryTimeWindow when trying to send message to service bus topic尝试向服务总线主题发送消息时出现 DuplicateDetectionHistoryTimeWindow 问题
【发布时间】:2021-03-04 23:10:03
【问题描述】:

我有一个 C# 代码向服务总线主题发送消息,如下所示:

public class ServiceBusTopicsRepository : IServiceBusTopicsRepository
{
    private TopicClient _topicClient;

    public ServiceBusTopicsRepository(string connectionString, string entityPath)
    {
        _topicClient = new TopicClient(connectionString, entityPath);
    }

    public async Task AddMessageAsync(SyncJob job)
    {
        await _topicClient.SendAsync(CreateMessage(job));
    }

    private Message CreateMessage(SyncJob job)
    {
        var body = JsonSerializer.Serialize(job);
        var message = new Message
        {
            Body = Encoding.UTF8.GetBytes(body)
        };

        message.MessageId = "PK_RK";

        return message;
    }
}

在运行代码时,当它到达行后的断点时:

等待_topicClient.SendAsync(CreateMessage(job));

我在执行代码时看到消息一直没有添加到主题中。

DuplicateDetectionHistoryTimeWindow 为 10 分钟

当我尝试在 10 分钟内发送消息时,我看到新发送的消息立即被忽略并丢弃。查看此文档https://docs.microsoft.com/en-us/azure/service-bus-messaging/duplicate-detection,我看到如果使用在时间窗口(10 分钟)内记录的 MessageId 发送任何新消息,则该消息被报告为已接受(发送操作成功),但新发送的消息是瞬间被忽略掉了。所以,我尝试将 MessageId 更新为“PK_RK”+随机 GUID。我仍然看到同样的问题。我错过了什么?

【问题讨论】:

    标签: azureservicebus azure-servicebus-topics


    【解决方案1】:

    官方服务总线 SDK 未重现此问题。该方案按预期工作。如果有人遇到问题,请标记我,以便我查看源代码、配置以及后端是否有任何问题。

    类似的帖子: https://github.com/MicrosoftDocs/azure-docs/issues/71585 https://docs.microsoft.com/en-us/answers/questions/301303/index.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-23
      • 1970-01-01
      • 1970-01-01
      • 2019-09-18
      • 2019-10-13
      • 1970-01-01
      • 2018-05-12
      • 2013-03-26
      相关资源
      最近更新 更多