La AWS SDK for Java 1.x se alcanzó end-of-support el 31 de diciembre de 2025. Le recomendamos que migre a AWS SDK for Java 2.x para seguir recibiendo nuevas características, mejoras de disponibilidad y actualizaciones de seguridad.
Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Uso de colas de mensajes fallidos en Amazon SQS
Amazon SQS añade compatibilidad para las colas de mensajes fallidos. Una cola de mensajes fallidos es una cola a la que otras pueden enviar mensajes que no se pueden procesar correctamente. Puede apartar y aislar estos mensajes en la cola de mensajes fallidos para determinar por qué no se procesaron correctamente.
Creación de una cola de mensajes fallidos
Una cola de mensajes fallidos se crea de la misma forma que una cola normal, pero con las siguientes restricciones:
-
Una cola de mensajes fallidos debe ser el mismo tipo de cola (FIFO o estándar) que la cola de origen.
-
Una cola de mensajes fallidos se debe crear con la misma cuenta y región de Cuenta de AWS que la cola de origen.
Aquí creamos dos colas de Amazon SQS idénticas, una de los cuales actuará como la cola de mensajes fallidos:
Importaciones
import com.amazonaws.services.sqs.AmazonSQS; import com.amazonaws.services.sqs.AmazonSQSClientBuilder; import com.amazonaws.services.sqs.model.AmazonSQSException;
Código de
final AmazonSQS sqs = AmazonSQSClientBuilder.defaultClient(); // Create source queue try { sqs.createQueue(src_queue_name); } catch (AmazonSQSException e) { if (!e.getErrorCode().equals("QueueAlreadyExists")) { throw e; } } // Create dead-letter queue try { sqs.createQueue(dl_queue_name); } catch (AmazonSQSException e) { if (!e.getErrorCode().equals("QueueAlreadyExists")) { throw e; } }
Consulte el ejemplo completo
Designación de una cola de mensajes fallidos para una cola de origen
Para designar una cola de mensajes fallidos, primero debe crear una política de redireccionamiento y, a continuación, configurar la política en los atributos de la cola. Una política de redireccionamiento se especifica en JSON e indica el ARN de la cola de mensajes fallidos y el número máximo de veces que se puede recibir y no procesar el mensaje antes de que se envíe a la cola de mensajes fallidos.
Para establecer la política de redireccionamiento de la cola de origen, llame al método de la clase de setQueueAttributes de AmazonSQS con un objeto SetQueueAttributesRequest para el que haya establecido el atributo RedrivePolicy con su política de redireccionamiento JSON.
Importaciones
import com.amazonaws.services.sqs.model.GetQueueAttributesRequest; import com.amazonaws.services.sqs.model.GetQueueAttributesResult; import com.amazonaws.services.sqs.model.SetQueueAttributesRequest;
Código de
String dl_queue_url = sqs.getQueueUrl(dl_queue_name) .getQueueUrl(); GetQueueAttributesResult queue_attrs = sqs.getQueueAttributes( new GetQueueAttributesRequest(dl_queue_url) .withAttributeNames("QueueArn")); String dl_queue_arn = queue_attrs.getAttributes().get("QueueArn"); // Set dead letter queue with redrive policy on source queue. String src_queue_url = sqs.getQueueUrl(src_queue_name) .getQueueUrl(); SetQueueAttributesRequest request = new SetQueueAttributesRequest() .withQueueUrl(src_queue_url) .addAttributesEntry("RedrivePolicy", "{\"maxReceiveCount\":\"5\", \"deadLetterTargetArn\":\"" + dl_queue_arn + "\"}"); sqs.setQueueAttributes(request);
Consulte el ejemplo completo
Más información
-
Uso de colas de cartas muertas de Amazon SQS en la Guía para desarrolladores de Amazon SQS
-
SetQueueAttributes en la Referencia de la API de Amazon SQS