Azure WebJob с запущенной очередью запускается несколько раз - PullRequest
0 голосов
/ 10 сентября 2018

У меня есть консольное приложение, которое отправляет множество сообщений параллельно очереди хранения Azure. Существует непрерывно запускаемый веб-задание Azure, которое вызывается всякий раз, когда сообщение добавляется в эту очередь. В одном из сценариев я добавил в очередь 300 элементов, по 100 в каждом из трех потоков. Поскольку в очереди только 300 сообщений, в идеале WebJob должен вызываться только 300 раз. Но я мог видеть, что он вызывался 308 раз. Что может быть причиной этого? Также обратите внимание, что количество дополнительных триггеров не предсказуемо. Иногда это может быть 306 или 310 и т. Д.

Я попытался отправить сообщения последовательно, удалив Parallel.Invoke, чтобы проверить, связано ли это с параллельной обработкой, но проблема все еще существует. Я отлаживаю проблему, запустив проект WebJob на локальном компьютере.

1 Ответ

0 голосов
/ 11 сентября 2018

Возможно, что исключения возникли при обработке некоторых сообщений. Если сообщение не может быть успешно обработано, оно будет повторено. Каждое сообщение имеет dequeueCount. Если память используется, по умолчанию для триггера очереди используется пять попыток.

Попробуйте запустить локально и посмотреть окно вывода. Или вы можете проверить журналы веб-заданий на своем живом экземпляре Azure, чтобы узнать, была ли повторена попытка отправки сообщения.

...