Извлечение сообщений
Данная статья переведена автоматически. Наведите указатель мыши на предложения статьи, чтобы просмотреть исходный текст. Дополнительные сведения.
Перевод
Текст оригинала

Извлечение сообщений

 

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

Peek Messages Можно составить следующим образом. Рекомендуется использовать протокол HTTPS. Замените myaccount с именем вашей учетной записи хранилища и myqueue с именем очереди:

Метод

URI запроса

Версия HTTP

GET

https://myaccount.queue.core.windows.net/myqueue/messages?peekonly=true

HTTP/1.1

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

Метод

URI запроса

Версия HTTP

GET

http://127.0.0.1:10001/devstoreaccount1/myqueue/messages?peekonly=true

HTTP/1.1

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

Параметр

Описание

numofmessages

Необязательно. Безнулевое целочисленное значение, которое определяет количество сообщений для извлечения из очереди (не более 32). По умолчанию эта операция извлекает одно сообщение из очереди.

timeout

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

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

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

Описание

Authorization

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

Date или x-ms-date

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

x-ms-version

Необязательно. Задает версию операции, используемой для этого запроса. Дополнительные сведения см. в разделе Управление версиями для служб хранилища Azure.

x-ms-client-request-id

Необязательно. Клиент создал непрозрачное значение с ограничением символов, равным 1 КБ, которое записывается в журналы аналитики, когда ведение журнала службы аналитики хранилища включено. Настоятельно рекомендуется использовать этот заголовок для корреляции действий на стороне клиента с запросами, которые принимает сервер. Дополнительные сведения см. в разделе Сведения о ведении журнала службы аналитики хранилища и Ведение журнала Azure: Использование журналов для отслеживания запросов к хранилищу.

Отсутствуют.

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

Успешная операция возвращает код состояния 200 (ОК).

Сведения о кодах состояния см. в разделе Коды состояний и ошибок.

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

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

Описание

x-ms-request-id

Этот заголовок однозначно определяет выполненный запрос, его также можно использовать для устранения связанных с запросом неполадок. Дополнительные сведения см. в разделе Устранение неполадок при API-операциях.

x-ms-version

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

Date

Значение даты и времени в формате UTC, сформированное службой и указывающее время, когда был инициирован ответ.

XML ответа для Peek Messages операция возвращается в следующем формате.

MessageID Элемент представляет собой значение GUID, которое обозначает сообщение в очереди. Это значение назначается сообщению службой очередей и непрозрачно для клиента.

InsertionTime И ExpirationTime элементы представляются в виде значений UTC и форматируются согласно RFC 1123.

DequeueCount Элемент имеет значение 1 при первом выводе сообщения из очереди. Это значение увеличивается при каждом последующем выведении сообщения из очереди.

System_CAPS_noteПримечание

DequeueCount Возвращается в тексте ответа только в том случае, если очередь была создана в версии 2009-09-19 службы очередей.

<QueueMessagesList> <QueueMessage> <MessageId>string-message-id</MessageId> <InsertionTime>insertion-time</InsertionTime> <ExpirationTime>expiration-time</ExpirationTime> <DequeueCount>integer</DequeueCount> <MessageText>message-body</MessageText> </QueueMessage> </QueueMessagesList>

Обратите внимание, что этот ответ отличается от ответа для Получение сообщений операции в том, что ответ не содержит PopReceipt или TimeNextVisible элементы.

Response Status: HTTP/1.1 200 OK Response Headers: Transfer-Encoding: chunked Content-Type: application/xml Date: Fri, 16 Sep 2011 22:51:18 GMT Server: Windows-Azure-Queue/1.0 Microsoft-HTTPAPI/2.0 Response Body: <?xml version="1.0" encoding="utf-8"?> <QueueMessagesList> <QueueMessage> <MessageId>06eba214-8107-4412-a7f6-710a9baff647</MessageId> <InsertionTime>Fri, 09 Oct 2009 18:59:54 GMT</InsertionTime> <ExpirationTime>Fri, 16 Sep 2009 18:59:54 GMT</ExpirationTime> <DequeueCount>1</DequeueCount> <MessageText>PHRlc3Q+dGhpcyBpcyBhIHRlc3QgbWVzc2FnZTwvdGVzdD4=</MessageText> </QueueMessage> </QueueMessagesList>

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

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

Только видимые сообщения могут быть получены с Peek Messages операции. Следует иметь в виду, что максимальное число сообщений, которые могут быть извлечены, — 32.

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

Если numofmessages выходит за пределы диапазона, служба возвращает код состояния 400 (неправильный запрос) Дополнительные сведения об ошибке, как показано в следующем примере.

HTTP/1.1 400 One of the query parameters specified in the request URI is outside the permissible range. Connection: Keep-Alive Content-Length: 455 Via: 1.1 TK5-PRXY-22 Date: Wed, 02 May 2012 19:37:23 GMT Content-Type: application/xml Server: Windows-Azure-Queue/1.0 Microsoft-HTTPAPI/2.0 x-ms-request-id: 6a03526c-ca2c-4358-a63a-b5d096988533 x-ms-version: 2011-08-18 <?xml version="1.0" encoding="utf-8"?> <Error> <Code>OutOfRangeQueryParameterValue</Code> <Message>One of the query parameters specified in the request URI is outside the permissible range. RequestId:6a03526c-ca2c-4358-a63a-b5d096988533 Time:2012-05-02T19:37:24.2438463Z </Message> <QueryParameterName>numofmessages</QueryParameterName> <QueryParameterValue>0</QueryParameterValue> <MinimumAllowed>1</MinimumAllowed> <MaximumAllowed>32</MaximumAllowed> </Error>

Показ:
© 2016 Microsoft