如何查看服务总线主题中的第二组消息?

How Can I peek second set of messages in service bus topic?

我正在尝试了解如何从服务总线主题中获取更多消息。

我可以从死信队列中获取前 ~250 条消息,但是当我尝试获取下一个 250 条消息时,我又获取了前 250 条消息。

我针对的主题订阅在死信队列中有超过 60'000 条消息。

我正在使用版本为 7.0.1

Azure.Messaging.ServiceBus NuGet 包
await using var client = new ServiceBusClient(ConnectionString);
var serviceBusReceiver = client.CreateReceiver(TopicName, SubscriptionName, new ServiceBusReceiverOptions
{
    SubQueue = SubQueue.DeadLetter
});

for (var i = 0; i < 1000; i += 250)
{
    var serviceBusReceivedMessages = await serviceBusReceiver.PeekMessagesAsync(250, i);
    foreach (var message in serviceBusReceivedMessages)
    {
        Console.WriteLine(message.MessageId);
    }
}

有人能帮忙吗?

使用 NServiceBus 的峰值消息不会以这种方式工作。当达到 N 条消息的峰值时,您将得到 up-to N,而不是 exactly N。因此,我建议增加您的 fromSequenceNumber 参数通过 serviceBusReceivedMessages.Count.

的值传递给 ServiceBusReceiver.PeekMessagesAsync