Добавить поддержку для получения сообщений служебной шины в пакетном режиме - PullRequest
0 голосов
/ 04 ноября 2018

Существует множество сценариев, в которых обработка пакетных сообщений гораздо эффективнее, чем работа с отдельным сообщением.

public void Handle([ServiceBusTrigger("myqueue")] BrokeredMessage[] messages)
{
  // Process the batch of messages  
}

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

Например :: За 10 секунд интервала времени я хочу вызвать функцию для обработки всех сообщений в очереди

Ответы [ 2 ]

0 голосов
/ 04 ноября 2018

Сервисная шина Azure обеспечивает пакетные операции через SDK. Посмотрите эту ссылку для достижения этой цели.

Триггер служебной шины функции Azure запускается только тогда, когда сообщение помещается в очередь.

Поскольку вам требуется регулярно проверять сообщения и получать сообщения в пакетном режиме, вы можете обрабатывать сообщения в пакетном режиме внутри функции Azure с помощью Триггер таймера

0 голосов
/ 04 ноября 2018

ServiceBusTrigger не предназначен для работы с партиями. Вместо этого он разработан для того, чтобы доставлять вам сообщения по одному. Инфраструктура функций Azure заботится о создании прослушивателя и завершении сообщения, когда функция завершена.

Если вам нужны пакеты, предложите взглянуть на Azure Service Bus с EventGrid .

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

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

...