Параллельная обработка получения сообщений 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