Todos los productos
Search
Centro de documentos

Simple Message Queue (formerly MNS):ChangeMessageVisibility

Última actualización: Sep 05, 2026

Modifique el tiempo de espera de visibilidad de un mensaje consumido. Esta operación controla cuánto tiempo permanece invisible para otros consumidores antes de estar disponible nuevamente para su entrega.

Funcionamiento

Cuando un consumidor recibe un mensaje de una cola, este se vuelve invisible para otros consumidores durante un periodo denominado tiempo de espera de visibilidad. Durante este intervalo, el consumidor procesa y elimina el mensaje. Si el procesamiento tarda más de lo previsto, llame a ChangeMessageVisibility para extender el tiempo de espera y evitar que otro consumidor reciba el mismo mensaje.

El nuevo tiempo de espera de visibilidad comienza desde el momento en que se realiza la llamada a ChangeMessageVisibility, no desde que se recibió originalmente el mensaje.

Ejemplo: Una cola tiene un tiempo de espera de visibilidad de 60 segundos. Un consumidor recibe un mensaje y comienza a procesarlo. Después de 15 segundos, el procesamiento aún continúa, por lo que el consumidor llama a ChangeMessageVisibility con VisibilityTimeout establecido en 30. El mensaje permanece invisible durante 30 segundos adicionales a partir de esa llamada; es decir, vuelve a ser visible 45 segundos después de haberse recibido por primera vez (15 + 30), y no a los 90 segundos (60 + 30).

Autorización

De forma predeterminada, solo las cuentas de Alibaba Cloud pueden llamar a esta operación. Los usuarios de Resource Access Management (RAM) deben contar primero con los permisos obligatorios. Para obtener más información, consulte Permission policies and examples.

Elemento

Valor

API

ChangeMessageVisibility

Action

mns:ChangeMessageVisibility

Resource

acs:mns:$region:$accountid:/queues/$queueName/messages

Solicitud

Línea de solicitud

PUT /queues/$queueName/messages?receiptHandle=<receiptHandle>&visibilityTimeout=<visibilitytimeout> HTTP/1.1

Parámetros URI

Parámetro

Tipo

Obligatorio

Ejemplo

Descripción

ReceiptHandle

String

Sí

MbZj6wDWli+QEauMZc8ZRv37sIW2iJKq3M9Mx/KSbkJ0

Identificador de recepción devuelto cuando se consumió el mensaje por última vez. Para obtener más información, consulte ReceiveMessage.

VisibilityTimeout

Integer

Sí

50

Nuevo tiempo de espera de visibilidad en segundos. Valores válidos: de 1 a 43200 (de 1 segundo a 12 horas).

Encabezados de solicitud

No existen encabezados de solicitud específicos para esta operación. Solo se utilizan los encabezados de solicitud comunes.

Cuerpo de la solicitud

Ninguna.

Respuesta

Código de estado

HTTP/1.1 200 OK

Encabezados de respuesta

No existen encabezados de respuesta específicos para esta operación. Solo se devuelven los encabezados de respuesta comunes.

Cuerpo de la respuesta

El cuerpo de la respuesta está en formato XML:

Parámetro

Tipo

Ejemplo

Descripción

ReceiptHandle

String

TbZj6wDWli+9CEauMZc8ZRv37sIW2iJKq3M9Mx/TS1

Nuevo identificador de recepción, válido hasta NextVisibleTime. Utilice este identificador para operaciones posteriores de eliminación o modificación del mensaje. El identificador de recepción anterior deja de ser válido.

NextVisibleTime

Long

1250700979298000

Momento en que el mensaje vuelve a ser visible, expresado como marca de tiempo UNIX en milisegundos desde el 1 de enero de 1970, 00:00:00 UTC.

Ejemplos

Solicitud de ejemplo

PUT /queues/$queueName/messages
?receiptHandle=MbZj6wDWli+QEauMZc8ZRv37sIW2iJKq3M9Mx/KSbkJ0&visibilityTimeout=50 HTTP/1.1
Host: $AccountId.mns.cn-hangzhou.aliyuncs.com
Date: Wed, 28 May 2012 22:32:00 GMT
x-mns-version: 2015-06-06
Authorization: MNS 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXA****

Respuesta de ejemplo

HTTP/1.1 200 OK
x-mns-request-id:512B2A634403E52B1956****
x-mns-version: 2015-06-06
<?xml version="1.0" encoding="UTF-8"?>
<ChangeVisibility xmlns="http://mns.aliyuncs.com/doc/v1/">
    <ReceiptHandle>TbZj6wDWli+9CEauMZc8ZRv37sIW2iJKq3M9Mx/TS1</ReceiptHandle>
    <NextVisibleTime>1250700979298000</NextVisibleTime>
</ChangeVisibility>

Códigos de error

Código de error

Mensaje de error

Código de estado HTTP

Descripción

InvalidArgument

The value of Element must be between Low and High seconds/bytes.

400

El valor del parámetro está fuera del rango permitido. Especifique un valor dentro del rango válido.

ReceiptHandleError

The receipt handle you provided is not valid.

400

El identificador de recepción no es válido. Obtenga un identificador de recepción válido mediante la llamada a ReceiveMessage.

QueueNotExist

The queue name you provided does not exist.

404

La cola especificada no existe. Compruebe el nombre de la cola o créela primero.

MessageNotExist

The receipt handle you provided has expired.

404

El mensaje volvió a ser visible antes de que finalizara el procesamiento, y el identificador de recepción caducó. Consuma los mensajes antes de que expire el tiempo de espera de visibilidad, o extienda dicho tiempo llamando a ChangeMessageVisibility con mayor antelación.

Operaciones relacionadas

A continuación se presentan las operaciones que suelen utilizarse de forma conjunta en un flujo de trabajo de procesamiento de mensajes:

  1. ReceiveMessage -- Recibir un mensaje y obtener su identificador de recepción.

  2. ChangeMessageVisibility -- Extender el tiempo de espera de visibilidad si el procesamiento tarda más de lo previsto.

  3. DeleteMessage -- Eliminar el mensaje una vez completado el procesamiento.