ReceiveAsyn c от Azure Шина обслуживания topi c без тела - PullRequest
0 голосов
/ 31 января 2020

Я создаю потребителя Azure Service Bus topi c (подписка), который ничего не делает, кроме хранения некоторой статистики. Сообщения, отправляемые в topi c, содержат довольно большое тело, которое обрабатывается другим потребителем во второй подписке с той же топикой c.

Поскольку потребитель статистики может обрабатывать большое количество сообщений в одном go мне было интересно, можно ли получить много сообщений, но оставить тело, чтобы улучшить производительность при взаимодействии с служебной шиной и получить еще больше сообщений в одном go.

В настоящее время я делаю это:

this.messageReceiver = new MessageReceiver(conn, path);
...
await messageReceiver.ReceiveAsync(10, TimeSpan.FromSeconds(5));

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

Прежде, чем кто-либо предложит это, я уже знаю, что могу попросить подсчет, и т. Д. c. на подписку topi c. Мне все еще нужен объект Message, поскольку он содержит запись в словаре UserProperties, которая используется для вычисления статистики.

1 Ответ

1 голос
/ 03 февраля 2020

Не возможно. Вы можете посмотреть, но это приносит всю полезную нагрузку и заголовки без увеличения DeliveryCount сообщения. Вы можете запросить его в качестве функции брокера здесь .

...