Как я могу просмотреть второй набор сообщений в теме служебной шины?

Я пытаюсь понять, как я могу продолжить сообщения из темы служебной шины.

Я могу получить первые ~ 250 сообщений из очереди недоставленных писем, но когда я пытаюсь получить следующие 250, я снова получаю первые 250.

Подписка на интересующую меня тему содержит более 60 000 сообщений в очереди недоставленных писем.

Я использую пакет Azure.Messaging.ServiceBus NuGet с версией 7.0.1

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);
    }
}

Кто-нибудь может помочь?


person chris31389    schedule 15.01.2021    source источник


Ответы (1)


Пик сообщений с NServiceBus не работает. При достижении пика N сообщений вы получите до N, а не точно N. Поэтому я бы посоветовал увеличить параметр fromSequenceNumber, переданный в ServiceBusReceiver.PeekMessagesAsync, на значение из serviceBusReceivedMessages.Count.

person Sean Feldman    schedule 16.01.2021