Actualizar mensaje

La operación Update Message actualiza el tiempo de espera de visibilidad de un mensaje. También puede utilizar esta operación para actualizar el contenido de un mensaje. Un mensaje debe tener un formato que se pueda incluir en una solicitud XML con codificación UTF-8 y el mensaje codificado puede tener un tamaño de hasta 64 KB. Esta operación se introdujo con la versión 2011-08-18 de la API de Azure Queue Storage.

Request

Puede construir la solicitud de la Update Message siguiente manera. 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
PUT https://myaccount.queue.core.windows.net/myqueue/messages/messageid?popreceipt=<string-value>&visibilitytimeout=<int-seconds> HTTP/1.1

Servicio de almacenamiento emulado

Esta operación es compatible con SDK 1.6 y versiones posteriores.

Cuando realice una solicitud en el servicio de almacenamiento emulado, especifique el nombre de host del emulador y el puerto de Queue Storage como 127.0.0.1:10001, seguido del nombre de la cuenta de almacenamiento emulada.

Método URI de solicitud Versión de HTTP
PUT http://127.0.0.1:10001/devstoreaccount1/myqueue/messages/messageid?popreceipt=<string-value>&visibilitytimeout=<int-seconds> HTTP/1.1

Parámetros del identificador URI

Puede especificar los parámetros siguientes en el URI de solicitud.

Parámetro Descripción
popreceipt Necesario. Especifica el valor de recibo pop válido devuelto de una llamada anterior a las operaciones Obtener mensajes o Actualizar mensaje . popreceipt debe estar codificado con dirección URL.
visibilitytimeout Necesario. 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 0 y no puede ser mayor que 7 días. El tiempo de espera de visibilidad de un mensaje no se puede establecer en un valor posterior a la hora de expiración. Puede actualizar un mensaje hasta que se haya eliminado o haya expirado.
timeout Opcional. El parámetro timeout se expresa en segundos. Para más información, consulte Establecimiento de tiempos de espera para las operaciones de Queue Storage.

Encabezados de solicitud

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

Encabezado de solicitud Descripción
Authorization Necesario. Especifica el esquema de autorización, el nombre de cuenta y la firma. Para obtener más información, vea Autorización de solicitudes a Azure Storage.
Date or x-ms-date Necesario. Especifica la hora universal coordinada (UTC) de la solicitud. Para obtener más información, vea Autorización de solicitudes a Azure Storage.
x-ms-version Requiere 2011-08-18 o posterior. 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 de Azure Storage.
x-ms-client-request-id Opcional. Proporciona un valor opaco generado por el cliente con un límite de caracteres de 1 kibibyte (KiB) que se registra en los registros cuando se configura el registro. Se recomienda encarecidamente usar este encabezado para correlacionar las actividades del lado cliente con las solicitudes que recibe el servidor. Para más información, consulte Supervisión de Azure Queue Storage.

Cuerpo de la solicitud

El cuerpo de la solicitud contiene los datos del mensaje en el formato XML siguiente. Tenga en cuenta que el contenido del mensaje debe estar en un formato que se pueda codificar con UTF-8.

<QueueMessage>  
    <MessageText>message-content</MessageText>  
</QueueMessage>  

Response

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

status code

Una operación correcta devuelve el código de estado 204 (Sin contenido). Para obtener información sobre los códigos de estado, consulte Códigos de estado y error.

Encabezados de respuesta

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

Encabezado de solicitud Descripción
x-ms-request-id Este encabezado identifica de forma única la solicitud que se realizó y se puede usar para solucionar problemas de la solicitud. Para más información, consulte Solución de problemas de operaciones de API.
x-ms-version Indica la versión de Queue Storage usada 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 que indica la hora en la que se inició la respuesta. El servicio genera este valor.
x-ms-popreceipt La confirmación de recepción del mensaje de la cola.
x-ms-time-next-visible Valor de fecha y hora UTC que representa el momento en el que el mensaje estará visible en la cola.
x-ms-client-request-id Puede usar este encabezado para solucionar problemas de solicitudes y respuestas correspondientes. El valor de este encabezado es igual al valor del x-ms-client-request-id encabezado, si está presente en la solicitud. El valor tiene como máximo 1024 caracteres ASCII visibles. Si el x-ms-client-request-id encabezado no está presente en la solicitud, este encabezado no estará presente en la respuesta.

Response body

Ninguno.

Authorization

El propietario de la cuenta puede realizar esta operación. Además, cualquier persona con una firma de acceso compartido que tenga permiso para realizar esta operación puede hacerlo.

Solicitud y respuesta de ejemplo

La solicitud siguiente amplía la visibilidad de un mensaje de la cola durante 30 segundos y actualiza su contenido.

PUT https://myaccount.queue.core.windows.net/myqueue/messages/663d89aa-d1d9-42a2-9a6a-fcf822a97d2c?popreceipt=AgAAAAEAAAApAAAAGIw6Q29bzAE%3d&visibilitytimeout=30&timeout=30 HTTP/1.1  
  

La solicitud se envía con los encabezados siguientes:

x-ms-version: 2011-08-18  
x-ms-date: Mon, 29 Aug 2011 17:17:21 GMT  
Authorization: SharedKey myaccount:batcrWZ35InGCZeTUFWMdIQiOZPCW7UEyeGdDOg7WW4=  
Content-Length: 75  

La solicitud se envía con el cuerpo XML siguiente:

<QueueMessage>  
    <MessageText>new-message-content</MessageText>  
</QueueMessage>  

Una vez enviada la solicitud, se devuelve la respuesta siguiente:

HTTP/1.1 204 No Content  
Content-Length: 0  
Server: Windows-Azure-Queue/1.0 Microsoft-HTTPAPI/2.0  
x-ms-request-id: df34a7dd-3cbe-4206-a586-d6de3cf225a7  
x-ms-version: 2011-08-18  
x-ms-popreceipt: AwAAAAIAAAApAAAAINtMQ29bzAEBAAAA  
x-ms-time-next-visible: Mon, 29 Aug 2011 17:17:51 GMT  
Date: Mon, 29 Aug 2011 17:17:21 GMT  

Comentarios

Se produce un error en una Update Message operación si el mensaje especificado no existe en la cola o si el recibo pop especificado no coincide con el mensaje.

La confirmación de recepción la devuelve la operación Get Messages o la operación Update Message. Las confirmaciones de recepción siguen siendo válidas hasta que ocurre uno de los eventos siguientes:

  • El mensaje ha expirado.

  • El mensaje se ha eliminado mediante el último recibo emergente recibido, ya sea de Get Messages o Update Message.

  • El tiempo de invisibilidad ha transcurrido y el mensaje se ha quitado de la cola mediante una solicitud Get Messages. Cuando se agota el tiempo de invisibilidad, el mensaje se hace visible de nuevo. Si se recupera mediante otra Get Messages solicitud, la recepción pop devuelta se puede usar para eliminar o actualizar el mensaje.

  • El mensaje se ha actualizado con un nuevo tiempo de espera de visibilidad. Cuando se actualice el mensaje, se devolverá una nueva recepción de confirmación.

Puede usar la Update Message operación para ampliar continuamente la invisibilidad de un mensaje de cola. Esta funcionalidad puede ser útil si desea que un rol de trabajo conste un mensaje de cola. Por ejemplo, si un rol de trabajo llama a Get Messages y reconoce que necesita más tiempo para procesar un mensaje, puede extender continuamente la invisibilidad del mensaje hasta que se procese. Si se producira un error en el rol de trabajo durante el procesamiento, el mensaje se volvería a ver y otro rol de trabajo podría procesarlo.

Consulte también

Autorización de solicitudes a Azure Storage
Estado y códigos de error
Códigos de error de Queue Storage