Экспорт (0) Печать
Развернуть все

Обновление сообщений

Обновлено: Сентябрь 2011 г.

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

Запрос 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

Дополнительные сведения см. в About Development Storage.

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

 

Параметр Описание

popreceipt

Обязательно. Указывает допустимое значение подтверждения, возвращаемое от более раннего вызова операции Получение сообщений или Обновление сообщений.

visibilitytimeout

Обязательно. Указывает новое значение времени ожидания видимости в секундах, отсчитываемое относительно времени сервера. Новое значение должно быть больше или равно 0 и не может превышать 7 дней. Для времени ожидания видимости сообщения нельзя задать значение позже истечения срока. Сообщения можно обновлять, пока оно не будет удалено или пока не кончится срок его действия.

timeout

Необязательно. Параметр timeout указывается в секундах. Дополнительные сведения см. в Задание времени ожидания для операций службы очередей.

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

 

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

Authorization

Обязательно. Указывает схему проверки подлинности, имя учетной записи и подпись. Дополнительные сведения см. в Проверка подлинности для служб хранения Azure.

Date or x-ms-date

Обязательно. Задает время в формате UTC для запроса. Дополнительные сведения см. в Проверка подлинности для служб хранения Azure.

x-ms-version

Требуется 2011-08-18 или более поздняя версия. Задает версию операции, используемой для этого запроса. Дополнительные сведения см. в Управление версиями для служб хранилища 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, представляющее время, когда сообщение будет видимо в очереди.

Отсутствует.

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

Следующий запрос расширяет видимость очереди сообщений до 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. Подтверждения остаются действительными до возникновения одного из следующих событий.

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

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

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

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

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

Показ:
© 2015 Microsoft