QueueMessage especifica as mensagens enviadas para filas do Simple Message Queue (formerly MNS). Ao enviar uma mensagem para uma fila do SMQ, especifique o corpo, o período de atraso e a prioridade. Este tópico descreve os parâmetros, os tipos e o status das mensagens de fila.
Parâmetros
-
MessageId
ID da mensagem.
O sistema retorna este parâmetro ao chamar as operações SendMessage, BatchSendMessage, ReceiveMessage, BatchReceiveMessage, PeekMessage ou BatchPeekMessage.
Cada mensagem em uma fila possui um ID exclusivo.
Ao enviar uma mensagem para uma fila, o SMQ gera um ID para ela. Após a geração, esse ID não pode ser alterado. Use o ID da mensagem para verificação de dados.
-
NextVisibleTime
Momento em que a mensagem pode ser consumida. Este valor é um timestamp UNIX que representa os milissegundos decorridos desde a época 1º de janeiro de 1970, 00:00:00 UTC.
O sistema retorna este parâmetro nas chamadas das operações ReceiveMessage, BatchReceiveMessage ou ChangeMessageVisibility.
-
ReceiptHandle
Identificador de recebimento da mensagem.
Obtido ao executar as operações ReceiveMessage, BatchReceiveMessage ou ChangeMessageVisibility.
Use este identificador para modifique ou exclua mensagens no estado Inactive. Ele permanece válido até o horário definido pelo parâmetro NextVisibleTime. Se você usar o identificador após esse prazo, o SMQ retornará o erro MessageNotExist.
Cada identificador tem uso único. Se o status da mensagem associada mudar, o identificador expirará imediatamente.
-
MessageBody
Corpo da mensagem.
Disponível no retorno das operações ReceiveMessage, BatchReceiveMessage, PeekMessage ou BatchPeekMessage.
-
MessageBodyMD5
Hash MD5 do corpo da mensagem.
Incluído na resposta das operações SendMessage, BatchSendMessage, ReceiveMessage, BatchReceiveMessage, PeekMessage ou BatchPeekMessage.
-
EnqueueTime
Horário de envio da mensagem para a fila. Representado por um timestamp UNIX em milissegundos desde 1º de janeiro de 1970, 00:00:00 UTC.
Fornecido ao invocar ReceiveMessage, BatchReceiveMessage, PeekMessage ou BatchPeekMessage.
-
FirstDequeueTime
Data e hora do primeiro consumo da mensagem. Segue o formato de timestamp UNIX (milissegundos desde 01/01/1970 00:00:00 UTC).
Retornado pelas operações ReceiveMessage, BatchReceiveMessage, PeekMessage ou BatchPeekMessage.
Se a mensagem nunca foi consumida, este valor será idêntico ao do parâmetro EnqueueTime.
-
DequeueCount
Número total de vezes que a mensagem foi consumida.
Presente nas respostas de ReceiveMessage, BatchReceiveMessage, PeekMessage ou BatchPeekMessage.
-
Priority
Prioridade da mensagem. Valores válidos: 1 a 16, onde 1 representa a maior prioridade.
Este campo aparece ao usar ReceiveMessage, BatchReceiveMessage, PeekMessage ou BatchPeekMessage.
Em filas com mensagens de prioridades distintas, aquelas com valores mais altos tendem a ser consumidas primeiro durante a operação ReceiveMessage.
Devido ao recurso de distribuição de dados (striping), o SMQ não garante a ordem exata de consumo das mensagens.
Tipos de mensagem
Mensagens atrasadas
Mensagens atrasadas enviadas a uma fila só ficam disponíveis para consumo após o término do período configurado no parâmetro DelaySeconds.
Defina o parâmetro DelaySeconds diretamente na fila ou especifique-o ao chamar SendMessage ou BatchSendMessage.
Status da mensagem
Uma mensagem padrão enviada a uma fila padrão inicia no estado Active. Ao ser recebida, passa para Inactive e assim permanece durante o intervalo definido por VisibilityTimeout. Se não for consumida nesse prazo, volta ao estado Active; se for excluída, assume o estado Deleted.
Mensagens padrão em filas com atraso começam no estado Delayed. Quando o tempo de DelaySeconds expira, elas transitam para Active.
Ao enviar uma mensagem atrasada para qualquer fila, ela permanece como Delayed até que o período de DelaySeconds termine, momento em que se torna Active.
O parâmetro MessageRetentionPeriod determina a retenção máxima da mensagem na fila. Ultrapassado esse limite, o status muda para Expired e o coletor de lixo recicla a mensagem.
Somente mensagens no estado Active podem ser recebidas.