Поделиться через


сообщение Peek-Lock (неразрушительное чтение)

Эта операция атомарно извлекает и блокирует сообщение из очереди или подписки для обработки. Сообщение гарантированно не будет доставлено другим получателям (только в той же очереди или подписке) в течение длительности блокировки, указанной в описании очереди или подписки. По истечении срока действия блокировки сообщение становится доступным другим получателям. Чтобы завершить обработку сообщения, получатель должен выполнить команду удаления с идентификатором блокировки, полученным из этой операции. Чтобы отказаться от обработки сообщения и разблокировать его для других получателей, необходимо выполнить команду разблокировать сообщение, в противном случае срок блокировки может истекать.

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

Просьба

Метод URI запроса Версия HTTP
ПОМЕСТИТЬ http{s}://{serviceNamespace}.servicebus.windows.net/{queuePath}/messages/head

или

http{s}://{serviceNamespace}.servicebus.windows.net/{topicPath}/subscriptions/{subscriptionName}/messages/head|HTTP/1.1

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

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

Заголовок запроса Описание
Авторизация Укажите одно из следующих значений токена:

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

Никакой.

Ответ

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

Коды ответов

Код Описание
201 Сообщение успешно извлечено и заблокировано.
204 Сообщения не доступны в течение указанного периода ожидания.
400 Недопустимый запрос.
401 Сбой авторизации.
410 Указанная очередь или подписка не существует.
500 Внутренняя ошибка.

Сведения о кодах состояния см. в коды состояния и коды ошибок.

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

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

Заголовок ответа Описание
Content-Type Установите значение application/atom+xml;type=entry;charset=utf-8.
Location URI заблокированного сообщения. Этот универсальный код ресурса (URI) можно использовать для разблокировки или удаления сообщения.
BrokerProperties В кодировке JSON BrokerProperties полученного сообщения. Свойство LockToken представляет идентификатор блокировки возвращаемого сообщения. Свойство SequenceNumber представляет порядковый номер возвращаемого сообщения.

Текст ответа

Текст ответа — это текст сообщения, полученного сообщения.

Пример

Следующий HTTP-запрос блокирует и возвращает сообщение из очереди:

POST https://your-namespace.servicebus.windows.net/HttpClientSampleQueue/messages/head?timeout=60 HTTP/1.1  
Authorization: SharedAccessSignature sr=your-namespace&sig=Fg8yUyR4MOmXfHfj55f5hY4jGb8x2Yc%2b3%2fULKZYxKZk%3d&se=1404256819&skn=RootManageSharedAccessKey  
Host: your-namespace.servicebus.windows.net  
Content-Length: 0  

Служебная шина возвращает следующий ответ. Сообщение содержит настраиваемые свойства Priority и Customer:

HTTP/1.1 201 Created  
Transfer-Encoding: chunked  
Content-Type: application/atom+xml;type=entry;charset=utf-8  
Location: https://your-namespace.servicebus.windows.net/httpclientsamplequeue/messages/2/7da9cfd5-40d5-4bb1-8d64-ec5a52e1c547  
Server: Microsoft-HTTPAPI/2.0  
BrokerProperties: {"DeliveryCount":1,"EnqueuedSequenceNumber":0,"EnqueuedTimeUtc":"Wed, 02 Jul 2014 01:32:27 GMT","Label":"M1","LockToken":"7da9cfd5-40d5-4bb1-8d64-ec5a52e1c547","LockedUntilUtc":"Wed, 02 Jul 2014 01:33:27 GMT","MessageId":"31907572164743c38741631acd554d6f","SequenceNumber":2,"State":"Active","TimeToLive":10}  
Priority: "High"  
Customer: "12345,ABC"  
Date: Wed, 02 Jul 2014 01:32:27 GMT  
  
12  
This is a message.  
0  

См. также