DeliveryCount увеличивается от сообщения к сообщению в Microsoft Azure ServiceBus - PullRequest
0 голосов
/ 28 марта 2019

Я использую служебную шину Microsoft Azure для .NET Standard.

Я читаю сообщения из очереди служебной шины, используя несколько потребителей (несколько экземпляров MessageReceiver) с чтением PeekLock.

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

Проблема в том, что deliveryCount для второго сообщения - это, по сути, deliveryCount для первого сообщения (обычно 1) +1, так 2. Каким-то образом deliveryCount передается из одного сообщения в другое.Эта проблема не возникает, когда я получаю оба сообщения с одним и тем же получателем (_messageReceiver1 или _messageReceiver2).

msg1 = await _messageReceiver1.ReceiveAsync (80);Writeline (msg1.SystemProperties.DeliveryCount);

msg2 = await _messageReceiver2.ReceiveAsync (80);Writeline (msg2.SystemProperties.DeliveryCount);

После превышения максимального количества доставок с портала из-за того, что число доставок передается из одного сообщения в другое, все мои сообщения отправляются в DLQ, даже если япытался читать их или нет.

1 Ответ

0 голосов
/ 28 марта 2019

Вы должны пойти с Тематические подписки для нескольких потребителей. Прием сообщений несколько раз увеличит количество доставленных сообщений. Как только счет увеличится более чем на Максимальный счет доставки очереди, сообщения будут перемещены в очередь недоставленных сообщений .

...