【问题标题】:Read existing messages from a Subscription/Topic in Azure ServiceBus从 Azure ServiceBus 中的订阅/主题读取现有消息
【发布时间】:2019-06-02 23:11:19
【问题描述】:

我正在尝试使用 Microsoft.Azure.ServiceBus.dll(在 .Net Core 2.1 中)读取 Azure ServiceBus 订阅上的所有现有消息,但我遇到了困难。

我发现了很多例子,以下应该可以工作,但它没有:

var client = new SubscriptionClient(ServiceBusConnectionString, topicName, subscription, ReceiveMode.PeekLock, null);
var totalRetrieved = 0;

while (totalRetrieved < count)
{
    var messageEnumerable = subscriptionClient.PeekBatch(count);

    //// ... code removed from this example as not relevant
}

我的问题是 .PeekBatch 方法不可用,我很困惑如何解决这个问题。

我已经从 GitHub (https://github.com/paolosalvatori/ServiceBusExplorer) 下载了 ServiceBusExplorer 的源代码,上面的代码示例几乎就是这样做的。但不在 .Net Core / Microsoft.Azure.ServiceBus 命名空间中。

不过,为了清楚起见,我正在尝试读取队列中已经存在的消息 - 我已经研究过其他示例,这些示例创建了响应新消息的侦听器,但我需要在消息之后以这种断开连接的方式工作已经入队了。

【问题讨论】:

    标签: .net-core azureservicebus


    【解决方案1】:

    ServiceBusExplorer 使用 WindowsAzure.ServiceBus 库,它是一个 .Net 框架库,您不能在 .Net Core 应用程序中使用它。您应该在 .Net Core 应用程序中使用 Microsoft.Azure.ServiceBus(.Net 标准库)。

    检查 here 以获取 Microsoft.Azure.ServiceBus 的示例

    【讨论】:

    • 感谢@Arunprabhu - 将进行调查。顺便说一句,我喜欢微软,但我觉得他们对这一切的命名令人震惊,因为没有一个特别清楚!
    • 刚刚查看了该链接 - 这是演示如何使用 RegisterMessageHandler 在新消息进入队列时访问它们的代码示例。
    • RegisterMessageHandler 接收队列中的所有消息,即使队列中已经存在多条消息。
    • Brett Rigby 是对的 - 我也无法读取现有消息
    【解决方案2】:
    var client = new SubscriptionClient(ServiceBusConnectionString, topicName, subscription, ReceiveMode.PeekLock, null);
    client .RegisterMessageHandler(
        async (message, token) =>
        {   
            await subscriptionClient.CompleteAsync(message.SystemProperties.LockToken);
        }
        );
    

    尝试使用 RegisterMessageHandler。它会 不断地从实体接收消息。它注册一个消息处理程序和 开始一个新线程来接收消息。等待此处理程序 每次接收者收到新消息时。

    【讨论】:

    • 感谢@Balasubramaniam,但正如我在帖子中提到的,RegisterMessageHandler 适用于所有新消息 - 我需要访问队列中的现有消息。
    猜你喜欢
    • 2017-07-08
    • 2018-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-07
    • 2012-12-07
    • 1970-01-01
    • 2019-02-12
    相关资源
    最近更新 更多