Todos os produtos
Search
Central de documentação

Simple Message Queue (formerly MNS):BatchReceiveMessage

Última atualização: Jun 27, 2026

Recebe até 16 mensagens de uma fila em uma única chamada.

Após o recebimento, as mensagens entram no estado Inactive durante o período definido pelo parâmetro VisibilityTimeout da fila. Exclua as mensagens dentro dessa janela após processá-las. Caso contrário, elas retornam ao estado Active e ficam disponíveis para nova entrega.

Autorização

Por padrão, apenas contas Alibaba Cloud podem chamar esta operação. Conceda as permissões necessárias aos usuários RAM antes que eles executem esta operação. Para mais detalhes, consulte Políticas de permissão e exemplos.

Propriedade

Valor

API

BatchReceiveMessage

Action

mns:BatchReceiveMessage

Resource

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

Funcionamento

  1. Envie uma requisição GET com o parâmetro numOfMessages para receber mensagens de uma fila.

  2. As mensagens retornadas entram imediatamente no estado Inactive e ficam ocultas para outros consumidores.

  3. Processe cada mensagem e chame DeleteMessage com o ReceiptHandle da mensagem antes do NextVisibleTime.

  4. Se você não excluir a mensagem dentro do período de VisibilityTimeout, ela retorna ao estado Active e pode ser consumida novamente.

O parâmetro VisibilityTimeout é configurado no nível da fila por meio de CreateQueue.

Requisição

Linha de requisição

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

Parâmetros URI

Parâmetro

Tipo

Obrigatório

Exemplo

Descrição

numOfMessages

Integer

Sim

10

Número máximo de mensagens a receber.

waitseconds

Integer

Não

0

Tempo de espera para long polling, em segundos. Se nenhuma mensagem estiver disponível, a requisição permanece aberta até a chegada de uma mensagem ou o fim do tempo de espera. Se omitido, assume o valor padrão de PollingWaitSeconds da fila. Consulte CreateQueue.

Comportamento de long polling

Quando waitseconds é definido (ou quando se aplica o valor padrão de PollingWaitSeconds da fila), a requisição permanece aberta até a chegada de uma mensagem ou o fim do tempo de espera. Mensagens escritas na fila durante esse período são entregues imediatamente. Para entender os dois modos de polling, consulte Short polling e long polling.

Nota

O SMQ limita requisições simultâneas de long polling com base na quantidade de requisições, duração da espera e endereços IP do cliente. Quando esse limite é excedido, o SMQ retorna 404 MessageNotExist imediatamente, em vez de manter a requisição aberta. Para evitar cobranças desnecessárias, reduza as requisições simultâneas de long polling e utilize um tempo de espera adequado. Para aumentar o limite, envie um ticket.

Cabeçalhos da requisição

Nenhum cabeçalho específico da operação.

Corpo da requisição

Nenhum.

Resposta

Código de status HTTP

HTTP/1.1 200 OK

Cabeçalhos da resposta

Nenhum cabeçalho específico da operação.

Corpo da resposta

O corpo da resposta é XML. Cada elemento <Message> dentro de <Messages> contém os seguintes campos:

Parâmetro

Tipo

Exemplo

Descrição

MessageId

String

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

Identificador exclusivo da mensagem na fila.

ReceiptHandle

String

1-ODU4OTkzNDU5My0xNDMyNzI3ODI3LTItOA==

Handle para excluir ou modificar a mensagem enquanto estiver no estado Inactive. Válido até NextVisibleTime.

MessageBody

String

This is test message 1.

Conteúdo da mensagem.

MessageBodyMD5

String

C5DD56A39F5F7BB8B3337C6D11B6\\\\

Hash MD5 do corpo da mensagem.

EnqueueTime

Long

1250700979248

Momento em que a mensagem foi enviada para a fila. Timestamp UNIX em milissegundos.

NextVisibleTime

Long

1250700799348

Momento em que a mensagem se torna visível novamente. Timestamp UNIX em milissegundos.

FirstDequeueTime

Long

1250700779318

Momento em que a mensagem foi consumida pela primeira vez. Timestamp UNIX em milissegundos.

DequeueCount

Integer

1

Número total de vezes que a mensagem foi consumida.

Exemplos

Exemplo de requisição

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****

Exemplo de resposta

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 erro

Código de erro

Mensagem de erro

Código de status HTTP

Descrição

QueueNotExist

The queue name you provided is not exist.

404

A fila especificada não existe. Crie a fila primeiro.

MessageNotExist

Message not exist.

404

Nenhuma mensagem visível na fila. Isso também ocorre quando o limite de long polling simultâneo é excedido.