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.
Solución de problemas de mensajes no devueltos para una llamada a la API ReceiveMessage de Amazon SQS
En los siguientes temas se describen las causas más comunes por las que no se puede devolver un mensaje de Amazon SQS a los consumidores y cómo solucionarlas. Para obtener más información, consulte Why can't I receive messages from my Amazon SQS queue?
Cola vacía
Para determinar si una cola está vacía, utilice el sondeo largo para llamar a la API ReceiveMessage. También puede usar las métricas de CloudWatch ApproximateNumberOfMessagesVisible, ApproximateNumberOfMessagesNotVisible y ApproximateNumberOfMessagesDelayed. Si todos los valores de la métrica se establecen en 0 durante varios minutos, la cola se considera vacía.
Se ha superado el límite de tránsito
Si utiliza sondeos largos y si se supera el límite de tránsito de la cola (120 000 de forma predeterminada), Amazon SQS no devolverá los mensajes de error que superen los límites de la cuota.
Retraso de mensajes
Si la cola de Amazon SQS está configurada como una cola de retraso o los mensajes se enviaron con temporizadores de mensajes, los mensajes no estarán visibles hasta que finalice el tiempo de retraso. Para comprobar si una cola está configurada como cola de retrasos, utilice el atributo DelaySeconds de la API GetQueueAttributes o desde la consola de colas situada en Plazo de entrega. Compruebe la métrica de ApproximateNumberOfMessagesDelayed CloudWatch para saber si algún mensaje se retrasa.
El mensaje está en tránsito
Si un consumidor diferente ha sondeado el mensaje, el mensaje estará en movimiento o será invisible durante el período de tiempo de espera de visibilidad. Es posible que los sondeos adicionales arrojen una recepción vacía. Compruebe la métrica ApproximateNumberOfMessagesVisible de CloudWatch para obtener información sobre el número de mensajes que están disponibles para ser recibidos. En el caso de las colas FIFO, si un mensaje con el ID de grupo de mensajes está en tránsito, no se devolverán más mensajes a menos que elimine el mensaje o este se haga visible. Esto se debe a que el orden de los mensajes se mantiene a nivel de grupo de mensajes en una cola FIFO.
Método de sondeo
Si está utilizando sondeo corto (WaitTimeSeconds es 0) Amazon SQS muestrea un subconjunto de sus servidores y devuelve mensajes solo de esos servidores. Por lo tanto, es posible que no reciba los mensajes aunque estén disponibles para recibirlos. Las solicitudes de sondeo posteriores devolverán los mensajes.
Si utiliza un sondeo largo, Amazon SQS sondea todos los servidores y envía una respuesta después de recopilar al menos un mensaje disponible y hasta el número máximo especificado. Si el valor de ReceiveMessage WaitTimeSeconds es demasiado bajo, es posible que no reciba todos los mensajes disponibles.