У меня есть NServiceBus, работающий поверх транспорта AzureStorageQueues.
Иногда мой обработчик сообщений показывает следующие две записи в журнале:
2018-08-27 12:27:23.0329 ИНФОРМАЦИЯ 5 Обработка сообщения...
2018-08-27 12:27:23.7359 ПРЕДУПРЕЖДЕНИЕ 5 Отправка сообщения заняла больше времени, чем время ожидания видимости. Сообщение снова появится в очереди и будет получено снова. NServiceBus.AzureStorageQueues.LeaseTimeoutException: всплывающее получение сообщения облачной очереди «2ebd6dd4-f4a1-40c6-a52e-499e22bc9f2f» является недопустимым, поскольку оно превысило следующее видимое время на «00:00:09.7359860».
Я понимаю, что существует тайм-аут видимости, который можно настроить, но по умолчанию он равен 30 секундам. И обрабатываемое сообщение обрабатывается дольше, чем эти 30 секунд.
Но что не имеет смысла, так это время этих двух записей в журнале. Обработчик запускается на 23,0329 секунды... а предупреждение появляется на 23,7359 секунды. Это всего 0,7 секунды. Это почему? Я ожидаю, что предупреждение от NServiceBus появится после 30-секундного InvisibilityTimeout.