#azureservicebus #azure-servicebus-topics
#azureservicebus #azure-servicebus-темы
Вопрос:
Я пытаюсь понять, как я могу отправлять дополнительные сообщения из темы служебной шины.
Я могу получить первые ~ 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);
}
}
Кто-нибудь может помочь?
Ответ №1:
Пиковые сообщения с помощью NServiceBus так не работают. При достижении максимума N сообщений вы получите значение N, а не точно N. Поэтому я бы предложил увеличить ваш fromSequenceNumber
параметр, переданный в ServiceBusReceiver.PeekMessagesAsync
, на значение serviceBusReceivedMessages.Count
.