Amazon SQS "Receive Count" solo aumenta

Amazon SQS "Receive Count" solo aumenta

Soy nuevo en Amazon SQS, pero algunas de las cifras son alarmantes hasta ahora.

Configuré Laravel para poner en cola los mensajes de correo electrónico (sin usar un trabajo, sino simplemente extendiendo una clase de notificación, según la documentación) que mi sitio envía mediante Amazon SQS. El servicio en sí parece funcionar bien. Todos los mensajes aparecen en la cola SQS de mi cuenta de AWS, pero el problema es que la cola parece ser enorme.

No puedo encontrar tutoriales o guías decentes que expliquen cómo leer la pantalla SQS escrita en inglés simple, así que todo PUEDE estar bien. Dicho esto, me gustaría asegurarme.

Considere lo que dice SQS actualmente:

Mensajes disponibles: 300
Mensajes en vuelo: 4
Mensajes retrasados: 0

Cuando lo probé cuando se lanzó por primera vez, los correos electrónicos se enviaban de inmediato. Los "Mensajes disponibles" estaban vacíos y los correos electrónicos llegaron a mi bandeja de entrada sin problemas.

Hoy en día la cifra es considerablemente más alta, como puede ver, y parece que nunca llega a 0 por completo. Además, los correos electrónicos tardan varias horas en llegar.

¿Es esto normal?

Entré por SSH a mi instancia de Elastic Beanstalk y eché un vistazo. Agregué manualmente cinco procesos en segundo plano que ejecutan php artisan queue:work, cada uno consume ~5% de la CPU. Mmm.

Si ejecuto manualmente el mismo comando (sin nohup) veo una lista que se actualiza constantemente:

[2018-04-04 20:09:59] Procesando: App\Notifications\CompetitionAll
[2018-04-04 20:09:59] Procesando: Aplicación\Notificaciones\CompetenciaVIP
[2018-04-04 20:10:00] Procesando: Aplicación\Notificaciones\CompetenciaVIP
[2018-04-04 20:10:00] Procesando: Aplicación\Notificaciones\CompetenciaVIP
[2018-04-04 20:10:00] Procesando: App\Notifications\CompetitionAll
[2018-04-04 20:10:00] Procesando: App\Notifications\CompetitionAll
[2018-04-04 20:10:00] Procesando: App\Notifications\CompetitionAll
[2018-04-04 20:10:02] Procesando: App\Notifications\CompetitionAll
[2018-04-04 20:10:02] Procesando: App\Notifications\CompetitionAll
[2018-04-04 20:10:02] Procesando: App\Notifications\CompetitionAll
[2018-04-04 20:10:02] Procesando: App\Notifications\CompetitionAll
[2018-04-04 20:10:02] Procesando: App\Notifications\CompetitionAll
[2018-04-04 20:10:02] Procesando: App\Notifications\CompetitionAll
[2018-04-04 20:10:03] Procesando: App\Notifications\CompetitionAll
[2018-04-04 20:10:03] Procesando: App\Notifications\CompetitionAll
[2018-04-04 20:10:03] Procesando: App\Notifications\CompetitionAll
[2018-04-04 20:10:03] Procesando: App\Notifications\CompetitionAll
[2018-04-04 20:10:03] Procesando: App\Notifications\CompetitionAll

Solo de vez en cuando cambia un cambio a Procesado, la mayoría de las veces es una lista interminable de Procesamiento amarillo, que cambia cada segundo.

Cuando veo los mensajes en SQS, veo "recuentos de recepción" muy altos. ¡Algunos tan altos como 21,000+!

ingrese la descripción de la imagen aquí

Sé que probablemente solo ha habido unas 2000 solicitudes de correo electrónico en total, así que no entiendo cómo este número puede llegar a ser tan alto.

¿Es esto normal? Parece que Laravel no está eliminando las solicitudes completadas. (¡Además, parece casi imposible encontrar una explicación para estos números...!)

¡Cualquier ayuda para entender lo que está pasando sería muy apreciada!

Mostrar la mejor respuesta

¿Puede publicar su archivo .env y el archivo de trabajo? Parece que el correo está en cola pero el trabajo no se envía correctamente.

Esos son recuentos de recepción muy altos. Eso generalmente representa algún error durante el procesamiento, por lo que el mensaje simplemente regresa a la cola. También es posible que el tiempo de espera de visibilidad del mensaje sea mucho menor que el tiempo que lleva procesar un mensaje.

@parthu_panther El archivo .env obviamente es correcto ya que los mensajes aparecen en SQS. No tengo un archivo de trabajo, solo estoy usando una clase de notificación, según la documentación: laravel.com/docs/5.5/notifications#encolar-notificaciones

ingrese la descripción de la imagen aquí

Ugh. Parece que el problema fue solo un error tonto:

Nuestro proveedor de envío de correo electrónico alcanzó su límite diario.

Una vez que aumentamos nuestro límite, la cola se despejó en minutos.

Dejaré esta pregunta aquí en caso de que ayude a alguien más.

buena respuesta, me hizo reír

Oye gracias por responder esto. ¿Puedes aclarar algo sin embargo? ¿Recibe el recuento de veces que la cola ha recibido exactamente la misma carga de mensajes? ¿Significa esto que en su caso este mensaje podría haber fallado 21.426 veces?

@Stewart, eso significa la cantidad de veces que el cliente "recibió" el mensaje, se volvió "invisible", luego expiró el tiempo de espera de visibilidad y el mensaje volvió a estar disponible.