MessageLockLostException, несмотря на завершение обработки в течение интервала времени блокировки - PullRequest
0 голосов
/ 06 августа 2020

У меня есть функция Azure V2, которая запускается на основе очереди Azure служебной шины. Очередь разделена на разделы и имеет продолжительность блокировки 5 минут. PrefetchCount функции устанавливается равным нулю, а автопродление устанавливается на 15 минут так же, как тайм-аут функции. Функция размещается в плане обслуживания приложений, поэтому мы можем установить более длительное время ожидания функции. Мы используем Azure SDK служебной шины для. net core 3.4.0.

Иногда мы можем видеть, как выбрасываются исключения MessageLockLostExceptions, когда SDK расширения служебной шины пытается завершить сообщение. Это происходит, несмотря на то, что сообщение обрабатывается в течение нескольких секунд, если оно не превышает длительность блокировки и продолжительность автоматического продления. Я могу понять, что возобновление блокировки - это операция на стороне клиента, которую так часто описывает @Sean Fieldman, но в этом случае даже продолжительность блокировки не нарушается.

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

Пожалуйста, укажите какие-нибудь указания?

...