Trabalhar com filas de mensagens do Amazon SQS - AWS SDK for Java 1.x

O AWS SDK for Java 1.x entrou no modo de manutenção em 31 de julho de 2024 e chegará end-of-supportem 31 de dezembro de 2025. Recomendamos que você migre para o AWS SDK for Java 2.xpara continuar recebendo novos recursos, melhorias de disponibilidade e atualizações de segurança.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Trabalhar com filas de mensagens do Amazon SQS

Uma fila de mensagens é o contêiner lógico usado para enviar mensagens de maneira confiável no Amazon SQS. Existem dois tipos de filas: padrão e First-In, First-Out (FIFO — Primeiro a entrar, primeiro a sair). Para saber mais sobre as filas e as diferenças entre esses tipos, consulte o Guia do desenvolvedor do Amazon SQS.

Este tópico descreve como criar, listar, excluir e obter o URL de uma fila do Amazon SQS usando o AWS SDK for Java.

Criar uma fila

Use o método createQueue do cliente do AmazonSQS fornecendo um objeto CreateQueueRequest que descreve os parâmetros de fila.

Importações

import com.amazonaws.services.sqs.AmazonSQS; import com.amazonaws.services.sqs.AmazonSQSClientBuilder; import com.amazonaws.services.sqs.model.AmazonSQSException; import com.amazonaws.services.sqs.model.CreateQueueRequest;

Código

AmazonSQS sqs = AmazonSQSClientBuilder.defaultClient(); CreateQueueRequest create_request = new CreateQueueRequest(QUEUE_NAME) .addAttributesEntry("DelaySeconds", "60") .addAttributesEntry("MessageRetentionPeriod", "86400"); try { sqs.createQueue(create_request); } catch (AmazonSQSException e) { if (!e.getErrorCode().equals("QueueAlreadyExists")) { throw e; } }

Você pode usar a forma simplificada de createQueue, que precisa somente do nome de uma fila, para criar uma fila padrão.

sqs.createQueue("MyQueue" + new Date().getTime());

Veja o exemplo completo no GitHub.

Listar filas

Para listar as filas do Amazon SQS da conta, chame o método listQueues do cliente do AmazonSQS.

Importações

import com.amazonaws.services.sqs.AmazonSQS; import com.amazonaws.services.sqs.AmazonSQSClientBuilder; import com.amazonaws.services.sqs.model.ListQueuesResult;

Código

AmazonSQS sqs = AmazonSQSClientBuilder.defaultClient(); ListQueuesResult lq_result = sqs.listQueues(); System.out.println("Your SQS Queue URLs:"); for (String url : lq_result.getQueueUrls()) { System.out.println(url); }

Usar a sobrecarga listQueues sem parâmetros retorna todas as filas. Você pode filtrar os resultados retornados passando um objeto ListQueuesRequest.

Importações

import com.amazonaws.services.sqs.AmazonSQS; import com.amazonaws.services.sqs.AmazonSQSClientBuilder; import com.amazonaws.services.sqs.model.ListQueuesRequest;

Código

AmazonSQS sqs = AmazonSQSClientBuilder.defaultClient(); String name_prefix = "Queue"; lq_result = sqs.listQueues(new ListQueuesRequest(name_prefix)); System.out.println("Queue URLs with prefix: " + name_prefix); for (String url : lq_result.getQueueUrls()) { System.out.println(url); }

Veja o exemplo completo no GitHub.

Obter o URL de uma fila

Chame o método getQueueUrl do cliente do AmazonSQS.

Importações

import com.amazonaws.services.sqs.AmazonSQS; import com.amazonaws.services.sqs.AmazonSQSClientBuilder;

Código

AmazonSQS sqs = AmazonSQSClientBuilder.defaultClient(); String queue_url = sqs.getQueueUrl(QUEUE_NAME).getQueueUrl();

Veja o exemplo completo no GitHub.

Excluir uma fila

Forneça o URL da fila para o método deleteQueue do cliente do AmazonSQS.

Importações

import com.amazonaws.services.sqs.AmazonSQS; import com.amazonaws.services.sqs.AmazonSQSClientBuilder;

Código

AmazonSQS sqs = AmazonSQSClientBuilder.defaultClient(); sqs.deleteQueue(queue_url);

Veja o exemplo completo no GitHub.

Mais informações