Просмотр и блокировка сообщения (неразрушающее чтение)
Эта операция автоматически извлекает и блокирует сообщение из очереди или подписки для обработки. При этом гарантируется, что сообщение не будет доставляться другим получателям в той же очереди или подписке на протяжении периода блокировки, указанного в описании очереди или подписки. По прошествии периода блокировки сообщение будет доступно другим получателям. Чтобы завершить обработку сообщения, получатель должен отправить команду удаления, указав ИД блокировки, полученный в этой операции. Чтобы отказаться от обработки сообщения и разблокировать его для других получателей, необходимо выполнить команду Разблокировать сообщение , в противном случае срок действия блокировки может истечь.
Эту операцию следует использовать в приложениях, где требуется однократная гарантированная доставка. Если получатель не удаляет сообщение до успешной обработки, эта операция гарантирует, что другой получатель сможет попытаться выполнить обработку после истечения срока действия блокировки.
Запрос
Метод | Универсальный код ресурса (URI) запроса | Версия HTTP |
---|---|---|
POST | 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 |
Полученное сообщение в кодировке BrokerProperties JSON. Свойство 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