Peek-Lock Mensagem (Leitura Não Destrutiva)
Esta operação obtém e bloqueia atomicamente uma mensagem de uma fila ou subscrição para processamento. É garantido que a mensagem não será entregue a outros recetores (apenas na mesma fila ou subscrição) durante a duração do bloqueio especificada na descrição da fila/subscrição. Quando o bloqueio expirar, a mensagem fica disponível para outros recetores. Para concluir o processamento da mensagem, o recetor deve emitir um comando de eliminação com o ID de bloqueio recebido desta operação. Para abandonar o processamento da mensagem e desbloqueá-la para outros recetores, deve ser emitido um comando Desbloquear Mensagem , caso contrário, o período de duração do bloqueio pode expirar.
Esta operação deve ser utilizada em aplicações que exijam garantias de entrega pelo menos uma vez . Se o recetor não eliminar a mensagem antes de o processamento ser bem-sucedido, esta operação garante que outro recetor consegue tentar processar após o período de duração do bloqueio expirar.
Pedir
Método | URI do pedido | Versão HTTP |
---|---|---|
POST | http{s}://{serviceNamespace}.servicebus.windows.net/{queuePath}/messages/head ou http{s}://{serviceNamespace}.servicebus.windows.net/{topicPath}/subscriptions/{subscriptionName}/messages/head|HTTP/1.1 |
Cabeçalhos do Pedido
A tabela seguinte descreve os cabeçalhos de pedido obrigatórios e opcionais. Além das propriedades listadas, o cabeçalho pode conter propriedades personalizadas. Veja o exemplo.
Cabeçalho do Pedido | Description |
---|---|
Autorização | Especifique um dos seguintes valores de token:
|
Corpo do Pedido
Nenhum.
Resposta
A resposta inclui um código de estado HTTP, um conjunto de cabeçalhos de resposta e o corpo da resposta.
Códigos de Resposta
Código | Descrição |
---|---|
201 | Mensagem obtida e bloqueada com êxito. |
204 | Não existem mensagens disponíveis no período de tempo limite especificado. |
400 | Pedido incorreto. |
401 | Falha de autorização. |
410 | A fila ou subscrição especificada não existe. |
500 | Erro interno. |
Para obter informações sobre códigos de estado, veja Códigos de Estado e Erro.
Cabeçalhos de Resposta
A resposta para esta operação inclui os seguintes cabeçalhos. A resposta também pode incluir cabeçalhos HTTP padrão adicionais. Todos os cabeçalhos padrão estão em conformidade com a especificação do protocolo HTTP/1.1.
Cabeçalho de Resposta | Description |
---|---|
Content-Type |
Definido como application/atom+xml;type=entry;charset=utf-8 . |
Location |
O URI da mensagem bloqueada. Pode utilizar este URI para desbloquear ou eliminar a mensagem. |
BrokerProperties |
Codificada BrokerProperties por JSON da mensagem recebida. A LockToken propriedade representa o ID de bloqueio da mensagem devolvida. A SequenceNumber propriedade representa o número de sequência da mensagem devolvida. |
Corpo da Resposta
O corpo da resposta é o corpo da mensagem obtida.
Exemplo
O seguinte pedido HTTP bloqueia e devolve a mensagem de uma fila:
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
O Service Bus devolve a seguinte resposta. A mensagem contém as propriedades personalizadas Priority
e 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