Todos los productos
Search
Centro de documentos

Simple Message Queue (formerly MNS):ReceiveMessage

Última actualización: Sep 04, 2026

Recibe un mensaje de una cola y lo establece en estado Inactive durante el periodo de VisibilityTimeout de la cola. Llame a DeleteMessage antes de que expire este periodo para eliminar el mensaje de forma permanente. Si no se elimina a tiempo, el mensaje vuelve al estado Active y queda disponible nuevamente para su consumo.

Información de autorización

De forma predeterminada, solo una cuenta de Alibaba Cloud puede llamar a esta operación. Para llamarla como usuario de Resource Access Management (RAM), otorgue los permisos obligatorios al usuario de RAM. Para obtener más información, consulte Permission policies and examples.

Elemento

Valor

Operación de API

ReceiveMessage

Acción

mns:ReceiveMessage

Recurso

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

Sintaxis de la solicitud

GET /queues/$queueName/messages?waitseconds=10 HTTP/1.1

Esta operación no tiene encabezados ni cuerpo de solicitud específicos.

Parámetros de URI

Parámetro

Tipo

Obligatorio

Ejemplo

Descripción

waitseconds

Integer

No

0

Tiempo máximo de espera en segundos cuando no hay mensajes disponibles. Si se omite, se aplica el valor de PollingWaitSeconds de la cola. Para obtener más información, consulte CreateQueue.

Comportamiento del sondeo largo

Cuando se establece waitseconds (o se aplica el valor predeterminado de PollingWaitSeconds de la cola), el servidor mantiene la conexión hasta que llega un mensaje o expira el periodo de espera. Cualquier mensaje escrito en la cola durante este periodo se entrega de inmediato.

Se recomienda reducir el número de solicitudes concurrentes de sondeo largo y especificar un periodo de espera adecuado. Para obtener más información, consulte Short polling and long polling.

Nota

Simple Message Queue (SMQ, anteriormente MNS) limita las solicitudes concurrentes de sondeo largo según el número total de solicitudes, los periodos de espera y las direcciones IP de origen. Cuando se supera este límite, SMQ devuelve inmediatamente un error 404 MessageNotExist sin retener la solicitud, y se aplican los cargos estándar por solicitud. Para aumentar este límite, envíe un ticket.

Respuesta

Código de estado HTTP

HTTP/1.1 200 OK

Esta operación no tiene encabezados de respuesta específicos.

Cuerpo de la respuesta

El cuerpo de la respuesta está en formato XML y contiene:

  • El cuerpo del mensaje y su hash MD5

  • Un ID de mensaje único

  • Un identificador de recibo para eliminar o modificar el mensaje mientras está en estado Inactive

  • Marcas de tiempo: hora de envío a la cola, hora de primera extracción y próxima hora de visibilidad

  • Recuento de extracciones

Parámetro

Tipo

Ejemplo

Descripción

MessageId

String

5F290C926D472878-2-14D9529A8FA-20000\\\\

Identificador único del mensaje dentro de la cola.

ReceiptHandle

String

1-ODU4OTkzNDU5My0xNDMyNzI3ODI3LTItOA==

Identificador para eliminar o modificar el mensaje mientras está en estado Inactive. Utilice este valor cuando llame a DeleteMessage o a ChangeMessageVisibility. Válido hasta NextVisibleTime.

MessageBody

String

This is a test message

Contenido del mensaje.

MessageBodyMD5

String

C5DD56A39F5F7BB8B3337C6D11B6\\\\

Hash MD5 del cuerpo del mensaje.

EnqueueTime

Long

1250700979248

Hora en que el mensaje se envió a la cola. Marca de tiempo UNIX en milisegundos desde el 1 de enero de 1970, 00:00:00 UTC.

NextVisibleTime

Long

1250700799348

Hora en que el mensaje vuelve a ser visible si no se elimina. Marca de tiempo UNIX en milisegundos desde el 1 de enero de 1970, 00:00:00 UTC.

FirstDequeueTime

Long

1250700779318

Hora en que el mensaje se consumió por primera vez. Marca de tiempo UNIX en milisegundos desde el 1 de enero de 1970, 00:00:00 UTC.

DequeueCount

Integer

1

Número de veces que se ha consumido el mensaje.

Ejemplos

Solicitud de ejemplo

GET /queues/$queueName/messages 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
Content-Type: text/xml;charset=utf-8
Content-Length: 500
x-mns-request-id: 512B2A634403E52B1956****
x-mns-version: 2015-06-06

<?xml version="1.0" encoding="UTF-8"?>
<Message xmlns="http://mns.aliyuncs.com/doc/v1/">
    <MessageId>5F290C926D472878-2-14D9529A8FA-20000****</MessageId>
    <ReceiptHandle>1-ODU4OTkzNDU5My0xNDMyNzI3ODI3LTItOA==</ReceiptHandle>
    <MessageBodyMD5>C5DD56A39F5F7BB8B3337C6D11B6****</MessageBodyMD5>
    <MessageBody>This is a test message</MessageBody>
    <EnqueueTime>1250700979248</EnqueueTime>
    <NextVisibleTime>1250700799348</NextVisibleTime>
    <FirstDequeueTime>1250700779318</FirstDequeueTime>
    <DequeueCount>1</DequeueCount>
    <Priority>8</Priority>
</Message>

Códigos de error

Código de error

Mensaje de error

Código de estado HTTP

Descripción

QueueNotExist

The queue name you provided is not exist.

404

La cola especificada no existe. Cree una cola antes de llamar a esta operación.

MessageNotExist

Message not exist.

404

No existe ningún mensaje visible en la cola.

Pasos siguientes