Сообщение об обновлении

Операция Update Message обновляет время ожидания видимости сообщения. Можно также воспользоваться этой операцией для обновления содержимого сообщений. Сообщение должно быть в формате, который может быть включен в XML-запрос с кодировкой UTF-8, а размер закодированного сообщения может составлять до 64 КБ. Эта операция появилась в API хранилища очередей Azure версии 2011-08-18.

Запрос

Запрос можно создать Update Message следующим образом. Рекомендуется использовать протокол HTTPS. Замените myaccount именем своей учетной записи хранения, а myqueue — именем очереди.

Метод Универсальный код ресурса (URI) запроса параметр "Версия HTTP"
PUT https://myaccount.queue.core.windows.net/myqueue/messages/messageid?popreceipt=<string-value>&visibilitytimeout=<int-seconds> HTTP/1.1

Эмулируемая служба хранилища

Эта операция поддерживается для пакета SDK 1.6 и более поздних версий.

При выполнении запроса к эмулированной службе хранилища укажите имя узла эмулятора и порт хранилища очередей в качестве 127.0.0.1:10001, а затем имя эмулированной учетной записи хранения.

Метод Универсальный код ресурса (URI) запроса параметр "Версия HTTP"
PUT http://127.0.0.1:10001/devstoreaccount1/myqueue/messages/messageid?popreceipt=<string-value>&visibilitytimeout=<int-seconds> HTTP/1.1

Параметры универсального кода ресурса (URI)

В URI запроса можно указать следующие параметры.

Параметр Описание
popreceipt Обязательный. Указывает допустимое значение всплывающего уведомления, возвращаемое из предыдущего вызова операций Получения сообщений или Обновления сообщения . Объект popreceipt должен быть закодирован в URL-адресе.
visibilitytimeout Обязательный. Указывает новое значение времени ожидания видимости в секундах, отсчитываемое относительно времени сервера. Новое значение должно быть больше или равно 0 и не может превышать 7 дней. Время ожидания видимости сообщения не может быть задано позднее времени истечения срока действия. Вы можете обновить сообщение до тех пор, пока оно не будет удалено или не истечет.
timeout Необязательный элемент. Параметр timeout указывается в секундах. Дополнительные сведения см. в разделе Настройка времени ожидания для операций хранилища очередей.

Заголовки запросов

В следующей таблице перечислены обязательные и необязательные заголовки запросов.

Заголовок запроса Описание
Authorization Обязательный. Указывает схему авторизации, имя учетной записи и подпись. Дополнительные сведения см. в статье Авторизация запросов к Службе хранилища Azure.
Date or x-ms-date Обязательный. Задает время запроса в формате UTC. Дополнительные сведения см. в статье Авторизация запросов к Службе хранилища Azure.
x-ms-version Требуется 18.08.2011 или более поздней версии. Задает версию операции, используемой для этого запроса. Дополнительные сведения см. в разделе Управление версиями для служб хранилища Azure.
x-ms-client-request-id Необязательный элемент. Предоставляет созданное клиентом непрозрачное значение с ограничением в 1 кибибайт (КиБ), которое записывается в журналы при настройке ведения журнала. Мы настоятельно рекомендуем использовать этот заголовок для сопоставления действий на стороне клиента с запросами, получаемыми сервером. Дополнительные сведения см. в статье Мониторинг хранилища очередей Azure.

Текст запроса

Текст запроса содержит данные сообщения в следующем формате XML. Обратите внимание, что содержимое сообщения должно быть в формате, который можно закодировать с помощью UTF-8.

<QueueMessage>  
    <MessageText>message-content</MessageText>  
</QueueMessage>  

Ответ

Ответ включает код состояния HTTP и набор заголовков ответа.

Код состояния

Успешная операция возвращает код состояния 204 (нет контента). Сведения о кодах состояния см. в разделе Коды состояния и ошибок.

Заголовки ответов

Ответ для этой операции включает следующие заголовки. Ответ также может содержать дополнительные стандартные заголовки HTTP. Все стандартные заголовки соответствуют спецификации протокола HTTP/1.1.

Заголовок запроса Описание
x-ms-request-id Этот заголовок однозначно идентифицирует выполненный запрос и может использоваться для устранения неполадок с запросом. Дополнительные сведения см. в разделе Устранение неполадок с операциями API.
x-ms-version Указывает версию хранилища очередей, используемую для выполнения запроса. Этот заголовок возвращается для запросов к версии 2009-09-19 и более поздним версиям.
Date Значение даты и времени в формате UTC, указывающее время, когда был инициирован ответ. Служба создает это значение.
x-ms-popreceipt Подтверждение для сообщения в очереди.
x-ms-time-next-visible Значение даты и время в формате UTC, представляющее время, когда сообщение будет видимо в очереди.
x-ms-client-request-id Этот заголовок можно использовать для устранения неполадок с запросами и соответствующими ответами. Значение этого заголовка равно значению заголовка x-ms-client-request-id , если он присутствует в запросе. Значение равно не более 1024 видимых символов ASCII. Если заголовок x-ms-client-request-id отсутствует в запросе, этот заголовок не будет присутствовать в ответе.

Текст ответа

Нет.

Авторизация

Владелец учетной записи может выполнить эту операцию. Кроме того, это может сделать любой пользователь с подписанным URL-адресом, имеющий разрешение на выполнение этой операции.

Пример запроса и ответа

Следующий запрос расширяет видимость очереди сообщений до 30 секунд и обновляет его содержимое.

PUT https://myaccount.queue.core.windows.net/myqueue/messages/663d89aa-d1d9-42a2-9a6a-fcf822a97d2c?popreceipt=AgAAAAEAAAApAAAAGIw6Q29bzAE%3d&visibilitytimeout=30&timeout=30 HTTP/1.1  
  

Запрос отправляется со следующими заголовками:

x-ms-version: 2011-08-18  
x-ms-date: Mon, 29 Aug 2011 17:17:21 GMT  
Authorization: SharedKey myaccount:batcrWZ35InGCZeTUFWMdIQiOZPCW7UEyeGdDOg7WW4=  
Content-Length: 75  

Запрос отправляется со следующим текстом XML:

<QueueMessage>  
    <MessageText>new-message-content</MessageText>  
</QueueMessage>  

После отправки запроса возвращается следующий ответ:

HTTP/1.1 204 No Content  
Content-Length: 0  
Server: Windows-Azure-Queue/1.0 Microsoft-HTTPAPI/2.0  
x-ms-request-id: df34a7dd-3cbe-4206-a586-d6de3cf225a7  
x-ms-version: 2011-08-18  
x-ms-popreceipt: AwAAAAIAAAApAAAAINtMQ29bzAEBAAAA  
x-ms-time-next-visible: Mon, 29 Aug 2011 17:17:51 GMT  
Date: Mon, 29 Aug 2011 17:17:21 GMT  

Комментарии

Операция Update Message завершается ошибкой, если указанное сообщение не существует в очереди или если указанное всплывающее уведомление не соответствует сообщению.

Подтверждение возвращается операцией Get Messages или Update Message. Подтверждения остаются действительными до возникновения одного из следующих событий.

  • Истек срок сообщения.

  • Сообщение было удалено с помощью последнего всплывающего уведомления, полученного из Get Messages или Update Message.

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

  • Сообщению присвоено новое время ожидания видимости. При обновлении сообщения возвращается новое подтверждение.

Операцию можно использовать для Update Message постоянного расширения невидимости сообщения очереди. Эта функция может быть полезна, если требуется, чтобы рабочая роль арендовыла сообщение очереди. Например, если рабочая роль вызывает Get Messages и понимает, что ей требуется больше времени для обработки сообщения, она может постоянно расширять невидимость сообщения до его обработки. Если во время обработки рабочей роли произошел сбой, в конечном итоге сообщение снова станет видимым, и другая рабочая роль может обработать его.

См. также раздел

Авторизация запросов к службе хранилища Azure
Коды состояний и ошибок
Коды ошибок хранилища очередей