Todos los productos
Search
Centro de documentos

Simple Message Queue (formerly MNS):BatchReceiveMessage

Última actualización: Sep 21, 2026

Recibe hasta 16 mensajes de una cola en una sola llamada.

Una vez recibidos, los mensajes pasan al estado Inactive durante el tiempo definido por el parámetro VisibilityTimeout de la cola. Elimine los mensajes dentro de esta ventana después de procesarlos. De lo contrario, volverán al estado Active y estarán disponibles para su reenvío.

Autorización

De forma predeterminada, solo las cuentas de Alibaba Cloud pueden llamar a esta operación. Otorgue a los usuarios de RAM los permisos obligatorios antes de que ejecuten esta operación. Para más información, consulte Permission policies and examples.

Propiedad

Valor

API

BatchReceiveMessage

Acción

mns:BatchReceiveMessage

Recurso

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

Funcionamiento

  1. Envíe una solicitud GET con el parámetro numOfMessages para recibir mensajes de una cola.

  2. Los mensajes devueltos pasan inmediatamente al estado Inactive y quedan ocultos para otros consumidores.

  3. Procese cada mensaje y llame a DeleteMessage con el ReceiptHandle del mensaje antes de que se alcance NextVisibleTime.

  4. Si no elimina un mensaje dentro del periodo VisibilityTimeout, este vuelve al estado Active y puede consumirse de nuevo.

El valor de VisibilityTimeout se configura para cada cola mediante CreateQueue.

Solicitud

Línea de solicitud

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

Parámetros URI

Parámetro

Tipo

Obligatorio

Ejemplo

Descripción

numOfMessages

Integer

Sí

10

Número máximo de mensajes por recibir.

waitseconds

Integer

No

0

Tiempo de espera del sondeo largo (long polling), en segundos. Cuando no hay ningún mensaje disponible, la solicitud se mantiene abierta hasta que llega un mensaje o transcurre el tiempo de espera. Si se omite, toma el valor predeterminado de PollingWaitSeconds de la cola. Consulte CreateQueue.

Comportamiento del sondeo largo

Cuando se establece waitseconds (o se aplica el valor predeterminado PollingWaitSeconds de la cola), la solicitud se mantiene abierta hasta que llega un mensaje o transcurre el tiempo de espera. Los mensajes escritos en la cola durante este periodo se entregan de inmediato. Para conocer el contexto de los dos modos de sondeo, consulte Short polling and long polling.

Nota

SMQ limita las solicitudes concurrentes de sondeo largo según la cantidad de solicitudes, la duración de la espera y las direcciones IP de los clientes. Al superar este límite, SMQ devuelve 404 MessageNotExist de inmediato en lugar de mantener la solicitud abierta. Para evitar cargos innecesarios, reduzca las solicitudes concurrentes de sondeo largo y utilice una duración de espera adecuada. Para aumentar el límite, envíe un ticket.

Encabezados de solicitud

No existen encabezados específicos para esta operación.

Cuerpo de la solicitud

Ninguno.

Respuesta

Código de estado HTTP

HTTP/1.1 200 OK

Encabezados de respuesta

No existen encabezados específicos para esta operación.

Cuerpo de la respuesta

El cuerpo de la respuesta está en formato XML. Cada elemento <Message> dentro de <Messages> contiene los siguientes campos:

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 se encuentra en estado Inactive. Es válido hasta NextVisibleTime.

MessageBody

String

This is test message 1.

Contenido del mensaje.

MessageBodyMD5

String

C5DD56A39F5F7BB8B3337C6D11B6\\\\

Hash MD5 del cuerpo del mensaje.

EnqueueTime

Long

1250700979248

Hora en la que el mensaje se envió a la cola. Marca de tiempo UNIX en milisegundos.

NextVisibleTime

Long

1250700799348

Hora en la que el mensaje vuelve a estar visible. Marca de tiempo UNIX en milisegundos.

FirstDequeueTime

Long

1250700779318

Hora en la que el mensaje se consumió por primera vez. Marca de tiempo UNIX en milisegundos.

DequeueCount

Integer

1

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

Ejemplos

Solicitud de ejemplo

GET /queues/$queueName/messages?numOfMessages=16 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"?>
<Messages xmlns="http://mns.aliyuncs.com/doc/v1/">
  <Message>
    <MessageId>5F290C926D472878-2-14D9529A8FA-20000****</MessageId>
    <ReceiptHandle>1-ODU4OTkzNDU5My0xNDMyNzI3ODI3LTItOA==</ReceiptHandle>
    <MessageBodyMD5>C5DD56A39F5F7BB8B3337C6D11B6****</MessageBodyMD5>
    <MessageBody>This is test message 1.</MessageBody>
    <EnqueueTime>1250700979248</EnqueueTime>
    <NextVisibleTime>1250700799348</NextVisibleTime>
    <FirstDequeueTime>1250700779318</FirstDequeueTime>
    <DequeueCount>1</DequeueCount>
    <Priority>8</Priority>
  </Message>
  <Message>
    <ReceiptHandle>1-ODU4OTkzNDU5My0xNDMyNzI3MjQwLTEtOA==</ReceiptHandle>
    <MessageBodyMD5>C5DD56A39F5F7BB8B3337C6D11B6****</MessageBodyMD5>
    <MessageBody>This is test message 2.</MessageBody>
    <EnqueueTime>1250700979252</EnqueueTime>
    <NextVisibleTime>1250700799350</NextVisibleTime>
    <FirstDequeueTime>1250700779330</FirstDequeueTime>
    <DequeueCount>1</DequeueCount>
    <Priority>8</Priority>
  </Message>
</Messages>

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 la cola primero.

MessageNotExist

Message not exist.

404

No hay mensajes visibles en la cola. Este error también ocurre cuando se supera el límite de sondeo largo concurrente.