Параллельная обработка получения сообщений EventHubTrigger типа EventData[] в непрерывном веб-задании

Я сталкиваюсь с проблемами во время получения данных о событиях в непрерывной веб-работе.

Я отправляю сообщения, используя пакетный асинхронный метод клиента устройства. На веб-работе я получаю эти партии одну за другой. когда приходит первый первый пакет, до момента завершения всех сообщений в нем; следующий пакет не запускается, а get выполняется. после того, как выполнение первого пакета завершено, запускается только второй пакет и начинается его выполнение.

Я хочу, чтобы это выполнялось параллельно.

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

Я что-то пропустил? как и в очереди, существует опция, называемая размером пакета, которая используется для определения количества сообщений, обрабатываемых параллельно. Итак, есть ли какая-либо опция в непрерывном веб-задании, которое получает данные концентратора событий в пакетах и ​​запускает эти многочисленные пакеты параллельно?

1 ответ

Я получил ответ после проверки моего кода построчно. Мне не хватало одного параметра во время вызова конструктора EventProcessorHost: leaseContainerName.

Решение заключается в использовании этого:

public EventProcessorHost(string hostName, string eventHubPath, string consumerGroupName, string eventHubConnectionString, string storageConnectionString, string leaseContainerName, string leaseBlobPrefix = null);

ранее я использовал это:

public EventProcessorHost(string hostName, string eventHubPath, string consumerGroupName, string eventHubConnectionString, string storageConnectionString);

для справки проверьте эту ссылку: https://developers.de/blogs/damir_dobric/archive/2016/09/12/how-to-configure-eventprocessorhost-for-iothub.aspx

Другие вопросы по тегам