Compartir a través de


Peek-Lock mensaje (lectura no destructiva)

Esta operación recupera y bloquea de forma atómica un mensaje de una cola o suscripción para su procesamiento. Se garantiza que el mensaje no se entregue a otros receptores (solo en la misma cola o suscripción) durante la duración del bloqueo especificada en la descripción de la cola o suscripción. Cuando expire el bloqueo, el mensaje estará disponible para otros receptores. Para completar el procesamiento del mensaje, el receptor debe emitir un comando delete con el identificador de bloqueo recibido de esta operación. Para abandonar el procesamiento del mensaje y desbloquearlo para otros receptores, se debe emitir un comando Desbloquear mensaje; de lo contrario, el período de duración del bloqueo puede expirar.

Esta operación debe usarse en aplicaciones que requieran garantías de entrega al menos una vez. Si el receptor no elimina el mensaje antes de que el procesamiento se realice correctamente, esta operación garantiza que otro receptor pueda intentar procesarlo después de que expire el período de duración del bloqueo.

Pedir

Método URI de solicitud Versión HTTP
EXPONER http{s}://{serviceNamespace}.servicebus.windows.net/{queuePath}/messages/head

o

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

Encabezados de solicitud

En la tabla siguiente se describen los encabezados de solicitud obligatorios y opcionales. Además de las propiedades enumeradas, el encabezado puede contener propiedades personalizadas. Vea el ejemplo.

Encabezado de solicitud Descripción
Autorización Especifique uno de los siguientes valores de token:
  • Token web JSON (JWT) de Microsoft Entra.
    Ejemplo: Authorization: Bearer <Azure AD JWT token>.
    Para obtener información sobre cómo generar un token de Microsoft Entra, consulte Autenticación desde una aplicación.
  • Un token de SAS.
    Ejemplo: Authorization: SharedAccessSignature sr=<NAMESPACE NAME>.servicebus.windows.net&sig=<SHARED ACCESS KEY>&se=<TOKEN EXPIRY INSTANT>&skn=<SHARED KEY NAME>.
    Para obtener información sobre cómo generar un token de SAS, consulte Generación de un token de firma de acceso compartido y generación de token de SAS.

Cuerpo de la solicitud

Ninguno.

Respuesta

La respuesta incluye un código de estado HTTP, un conjunto de encabezados de respuesta y el cuerpo de la respuesta.

Códigos de respuesta

Código Descripción
201 Mensaje recuperado y bloqueado correctamente.
204 No hay mensajes disponibles dentro del período de tiempo de espera especificado.
400 Solicitud incorrecta.
401 Error de autorización.
410 La cola o la suscripción especificadas no existen.
500 Error interno.

Para obtener información sobre los códigos de estado, vea Códigos de estado y de error.

Encabezados de respuesta

La respuesta de esta operación incluye los siguientes encabezados. La respuesta también puede incluir encabezados HTTP más estándar. Todos los encabezados estándar se ajustan a la especificación del protocolo HTTP/1.1 de .

Encabezado de respuesta Descripción
Content-Type Establezca en application/atom+xml;type=entry;charset=utf-8.
Location URI del mensaje bloqueado. Puede usar este URI para desbloquear o eliminar el mensaje.
BrokerProperties BrokerProperties con codificación JSON del mensaje recibido. La propiedad LockToken representa el identificador de bloqueo del mensaje devuelto. La propiedad SequenceNumber representa el número de secuencia del mensaje devuelto.

Cuerpo de la respuesta

El cuerpo de la respuesta es el cuerpo del mensaje recuperado.

Ejemplo

La siguiente solicitud HTTP bloquea y devuelve un mensaje de una cola:

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  

Service Bus devuelve la siguiente respuesta. El mensaje contiene las propiedades personalizadas Priority y 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  

Consulte también