VENTAS: 1-800-867-1389

Get Messages

Actualizado: noviembre de 2013

La operación Get Messages recupera uno o varios mensajes de la parte delantera de la cola.

La solicitud Get Messages se puede construir como sigue. Se recomienda HTTPS. Reemplace myaccount por el nombre de la cuenta de almacenamiento y myqueue por el nombre de la cola:

 

Método URI de solicitud Versión de HTTP

GET

https://myaccount.queue.core.windows.net/myqueue/messages

HTTP/1.1

Al realizar una solicitud en el servicio de almacenamiento emulado, especifique el nombre de host del emulador y el puerto del servicio Cola como 127.0.0.1:10001, seguido del nombre de la cuenta de almacenamiento emulado:

 

Método URI de solicitud Versión de HTTP

GET

http://127.0.0.1:10001/devstoreaccount1/myqueue/messages

HTTP/1.1

Se pueden especificar los parámetros adicionales siguientes en el URI de solicitud.

 

Parámetro Descripción

numofmessages

Opcional. Valor entero distinto de cero que especifica el número de mensajes que se deben recuperar de la cola, hasta un máximo de 32. Si hay un número menor de mensajes visibles, se devuelven los mensajes visibles. De forma predeterminada, con esta operación se recupera un solo mensaje de la cola.

visibilitytimeout

Obligatorio. Especifica el nuevo valor del tiempo de espera de visibilidad, en segundos, relativo a la hora del servidor. El nuevo valor debe ser mayor o igual que 1 segundo, y no puede ser mayor que 7 días o mayor que 2 horas en las versiones del protocolo de REST anteriores a la versión 2011-08-18. El tiempo de espera de visibilidad de un mensaje puede establecerse en un valor posterior a la hora de expiración.

timeout

Opcional. El parámetro timeout se expresa en segundos. Para obtener más información, vea Establecer los tiempos de espera para las operaciones del servicio Cola.

En la tabla siguiente se describen los encabezados de solicitud requeridos y opcionales.

 

Encabezado de solicitud Descripción

Authorization

Obligatorio. Especifica el esquema de autenticación, el nombre de la cuenta y la firma. Para obtener más información, vea Autenticación para los servicios de almacenamiento de Azure.

Date O bien x-ms-date

Obligatorio. Especifica la hora universal coordinada (UTC) para la solicitud. Para obtener más información, vea Autenticación para los servicios de almacenamiento de Azure.

x-ms-version

Opcional. Especifica la versión de la operación que se utiliza para esta solicitud. Para obtener más información, vea Versiones de los servicios Blob, Cola y Tabla de Windows Azure.

x-ms-client-request-id

Opcional. Proporciona un valor opaco generado por el cliente con un límite de caracteres de 1 KB que se graba en los registros de análisis cuando el registro de análisis de almacenamiento está habilitado. Se recomienda encarecidamente usar este encabezado para correlacionar las actividades del lado cliente con las solicitudes recibidas por el servidor. Para obtener más información, vea Acerca del registro del análisis de almacenamiento y Registro de Azure: usar registros para realizar el seguimiento de las solicitudes de almacenamiento.

La respuesta incluye un código de estado HTTP y un conjunto de encabezados de respuesta.

Una operación correcta devuelve el código de estado 200 (Correcto).

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

La respuesta para esta operación incluye los encabezados siguientes. La respuesta también puede incluir otros encabezados HTTP estándar. Todos los encabezados estándar cumplen la especificación del protocolo HTTP/1.1.

 

Encabezado de respuesta Descripción

x-ms-request-id

Este encabezado identifica de forma única la solicitud que se realizó y se puede utilizar para solucionar problemas relacionados con esta. Para obtener más información, vea Solucionar problemas relacionados con las operaciones de la API.

x-ms-version

Indica la versión del servicio Cola utilizada para ejecutar la solicitud. Este encabezado se devuelve para las solicitudes realizadas en la versión 2009-09-19 y versiones posteriores.

Date

Valor de fecha y hora UTC generado por el servicio que indica la hora a la que se inició la respuesta.

El código XML de respuesta para la operación Get Messages se devuelve con el formato siguiente.

El elemento MessageID es un valor de GUID que identifica el mensaje de la cola. El servicio Cola asigna este valor al mensaje y es opaco para el cliente. Este valor se puede utilizar junto con el valor del elemento PopReceipt para eliminar un mensaje de la cola después de recuperarlo con la operación Get Messages. El valor de PopReceipt también es opaco al cliente; su único propósito es asegurarse de que un mensaje se puede eliminar con la operación Delete Message.

Los elementos InsertionTime, ExpirationTime y TimeNextVisible se representan como valores UTC con el formato descrito en RFC 1123.

El elemento DequeueCount tiene el valor 1 la primera vez que el mensaje se quita de la cola. Este valor se incrementa cada vez que el mensaje se quita de la cola posteriormente.

noteNota
El elemento DequeueCount solo se devuelve en el cuerpo de respuesta si la cola se creó con la versión 2009-09-19 del servicio Cola.

<QueueMessagesList>
    <QueueMessage>
      <MessageId>string-message-id</MessageId>
      <InsertionTime>insertion-time</InsertionTime>
      <ExpirationTime>expiration-time</ExpirationTime>
      <PopReceipt>opaque-string-receipt-data</PopReceipt>
      <TimeNextVisible>time-next-visible</TimeNextVisible>
      <DequeueCount>integer</DequeueCount>
      <MessageText>message-body</MessageText>
    </QueueMessage>
</QueueMessagesList>

Response Status:
HTTP/1.1 200 OK
Response Headers:
Transfer-Encoding: chunked
Content-Type: application/xml
Date: Fri, 16 Sep 2011 21:04:30 GMT
Server: Windows-Azure-Queue/1.0 Microsoft-HTTPAPI/2.0

Response Body:
<?xml version="1.0" encoding="utf-8"?>
<QueueMessagesList>
  <QueueMessage>
    <MessageId>5974b586-0df3-4e2d-ad0c-18e3892bfca2</MessageId>
    <InsertionTime>Fri, 09 Oct 2009 21:04:30 GMT</InsertionTime>
    <ExpirationTime>Fri, 16 Oct 2009 21:04:30 GMT</ExpirationTime>
    <PopReceipt>YzQ4Yzg1MDItYTc0Ny00OWNjLTkxYTUtZGM0MDFiZDAwYzEw</PopReceipt>
    <TimeNextVisible>Fri, 09 Oct 2009 23:29:20 GMT</TimeNextVisible>
    <DequeueCount>1</DequeueCount>
    <MessageText>PHRlc3Q+dGhpcyBpcyBhIHRlc3QgbWVzc2FnZTwvdGVzdD4=</MessageText>
  </QueueMessage>
</QueueMessagesList>

Esta operación la puede realizar el propietario de la cuenta y cualquiera que tenga una firma de acceso compartido con permiso para realizar esta operación.

El contenido del mensaje se recupera en el mismo formato que se utilizó para la operación Put Message.

Cuando un mensaje se recupera de la cola, la respuesta incluye el mensaje y un valor de confirmación de recepción que es necesario para eliminar el mensaje. El mensaje no se elimina automáticamente de la cola, pero una vez recuperado, deja de estar visible para otros clientes durante el intervalo de tiempo especificado por el parámetro visibilitytimeout.

Si se recuperan varios mensajes, cada mensaje tiene asociada una confirmación de recepción. Se pueden recuperar 32 mensajes como máximo cada vez.

Se espera que el cliente que recupera el mensaje lo elimine una vez procesado y antes de que transcurra el tiempo especificado por el elemento TimeNextVisible de la respuesta, que se calcula según el valor del parámetro visibilitytimeout. El valor de visibilitytimeout se agrega a la hora en que se recupera el mensaje para determinar el valor de TimeNextVisible.

Un mensaje que se recupera con un visibilitytimeout determinado puede volver a aparecer antes de que haya transcurrido el tiempo de espera especificado, debido al sesgo de reloj. Tenga en cuenta que un cliente puede deducir que otro cliente ya ha quitado un mensaje de la cola según la recepción de confirmación, que es única para cada eliminación de un mensaje de la cola. Si una recepción de confirmación de cliente deja de funcionar para la eliminación o la actualización de un mensaje y el cliente recibe un error 404 (No encontrado), significa que otro cliente ha quitado el mensaje de la cola.

Normalmente, cuando un consumidor recupera un mensaje a través de Get Messages, ese mensaje se reserva generalmente para la eliminación hasta que expira el intervalo visibilitytimeout; sin embargo, este comportamiento no está garantizado. Después de que expira el intervalo visibilitytimeout, el mensaje vuelve a estar visible para otros consumidores. Si otro consumidor no recupera y elimina posteriormente el mensaje, el consumidor original puede eliminarlo utilizando la confirmación de recepción original.

Cuando se recupera un mensaje por primera vez, la propiedad DequeueCount se establece a 1. Si no se elimina y vuelve a recuperarse posteriormente, se incrementa el valor de la propiedad DequeueCount. El cliente puede utilizar este valor para determinar cuántas veces se ha recuperado un mensaje.

Si el parámetro visiblitytimeout o numofmessages está fuera del intervalo, el servicio devuelve el código de estado 400 (Solicitud incorrecta) junto con información adicional sobre el error, como se muestra en el ejemplo siguiente.


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>

¿Te ha resultado útil?
(Caracteres restantes: 1500)
Gracias por sus comentarios
Mostrar:
© 2015 Microsoft