Events
El worker utiliza una arquitectura basada en mensajes para procesar eventos de requisitos de pedidos en espera. Se suscribe a un tema SNS que publica eventos de cambios en pedidos, y procesa estos eventos para crear o actualizar alertas de reabastecimiento.
El flujo de mensajes es el siguiente:
- Los cambios en pedidos se publican en el tema SNS
- El tema SNS entrega los mensajes a la cola SQS suscrita
- El worker consulta la cola SQS para obtener mensajes
- El worker procesa los mensajes y crea o actualiza alertas de reabastecimiento
- El worker elimina los mensajes de la cola después de un procesamiento exitoso
Cola de Evaluación de Reabastecimiento Urgente
Section titled “Cola de Evaluación de Reabastecimiento Urgente”Esta cola recibe mensajes del tema SNS y los mantiene hasta que el worker los procesa.
Nombre: restocking-urgent-evaluator-queue
Propósito: Mantener eventos de requisitos de pedidos en espera para su procesamiento por el worker
Configuración
Section titled “Configuración”La URL de la cola se configura utilizando la variable de entorno QUEUE_URGENT_URL. Esta variable debe establecerse en la URL de la cola SQS que el worker debe consultar para obtener mensajes.
Procesamiento
Section titled “Procesamiento”El worker utiliza la clase AwsQueueService para interactuar con la cola SQS. Esta clase proporciona métodos para:
- Recibir mensajes de la cola
- Eliminar mensajes de la cola después de un procesamiento exitoso
El worker procesa mensajes en lotes de hasta 10 mensajes a la vez. Para cada mensaje:
- Valida el formato y contenido del mensaje
- Verifica si el almacén existe y tiene habilitada la bandera de característica necesaria
- Verifica si ya existe una alerta de reabastecimiento para el producto y almacén
- Crea una nueva alerta de reabastecimiento o actualiza una existente al nivel “Urgente”
- Elimina el mensaje de la cola después de un procesamiento exitoso
Si ocurre un error durante el procesamiento, el mensaje permanece en la cola y se reintentará después de que expire el tiempo de visibilidad.