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
oUpdate 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 otraGet 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