Обозреватель службы хранилища Azure - не отображаются элементы очереди с ошибками?

У меня есть простая настройка очереди хранилища, в которую я тоже добавляю сообщения.

Эти сообщения были получены функцией Azure, но они не прошли обработку.

Showing 0 of 3 messages in queue

Почему я не вижу сообщения об ошибке в обозревателе хранилища?

введите описание изображения здесь


person aherrick    schedule 11.05.2018    source источник


Ответы (1)


Обратите внимание, что обозреватель хранилища Azure использует API Peek Messages. для отображения сообщений в очереди:

Эта операция извлекает одно или несколько сообщений из начала очереди, но не изменяет видимость сообщения.

Однако пока функция Azure обрабатывает сообщения, она использует Получить сообщения API, который на время делает сообщения невидимыми для других потребителей:

Сообщение не удаляется из очереди автоматически, но после того, как оно было получено, оно не отображается для других клиентов в течение временного интервала, указанного параметром visibilitytimeout.

Обычно, когда потребитель получает сообщение через Get Messages, это сообщение обычно резервируется для удаления до истечения интервала visibilitytimeout, но такое поведение не гарантируется. По истечении visibilitytimeout интервала сообщение снова становится видимым для других потребителей. Если сообщение впоследствии не извлекается и не удаляется другим потребителем, исходный потребитель может удалить сообщение, используя исходную всплывающую квитанцию.

В заключение, если ваши сообщения не были удалены функцией Azure (я предполагаю, что это происходит в случае сообщения Отображение 0 из 3 сообщений в очереди), вы сможете увидеть их после visibilitytimeout.

person Zhaoxing Lu    schedule 12.05.2018
comment
Спасибо за ответ. Итак, как мне удалить сообщение, если оно не отображается в обозревателе хранилища? Я не понимаю, какой в ​​этом смысл. Почему он не просто показывает сообщение, а меняет состояние? - person aherrick; 12.05.2018
comment
К сожалению, удалить их невозможно, если эти сообщения невидимы. Для меня это имеет смысл, поскольку обозреватель хранилища Azure является просто потребителем, и у него не должно быть разрешения на удаление сообщений, которые все еще обрабатываются другими потребителями. - person Zhaoxing Lu; 12.05.2018
comment
Значит, нет возможности удалить сообщение после того, как оно было принято для обработки? - person aherrick; 12.05.2018
comment
Вы можете вызвать Очистить сообщения (docs.microsoft.com/en- us / rest / api / storageservices /) API для очистки всех сообщений в очереди вне зависимости от времени получения и таймаута видимости. - person Zhaoxing Lu; 13.05.2018
comment
Разве это не встроено в Storage Explorer? - person aherrick; 14.05.2018
comment
Очистить сообщения встроено в обозреватель хранилища - на панели инструментов имеется кнопка «Очистить очередь», которая удаляет все сообщения, включая те, которые не отображаются в обозревателе хранилища. - person Phil Seeman; 18.01.2019