es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo implementar el procesamiento de ventanas en Spring JMS?

Necesito leer mensajes de la cola de JMS en lotes (tengo parámetros de número máximo de registros y ventana de tiempo, lo que ocurra primero).

Luego necesito procesar los mensajes y realizar actualizaciones e inserciones masivas en la base de datos.

¿Cómo implementar esto utilizando Spring?

Estaba pensando en combinar Spring Batch y JMS, pero no estoy seguro si Spring Batch puede funcionar sin detenerse, necesito escuchar la cola indefinidamente. Tengo la impresión de que Spring Batch no es para este caso de uso de transmisión.

Sé que en Kafka existe ConcurrentKafkaListenerContainerFactory donde se puede establecer el procesamiento por lotes como verdadero, pero desafortunadamente no utilizamos Kafka por ahora.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para implementar esto utilizando Spring, puedes utilizar Spring Batch y Spring JMS para cumplir con tus requisitos.

    Spring Batch funciona bien con el procesamiento en lotes de datos, pero no está diseñado para casos de transmisión donde los datos fluyen constantemente desde una cola JMS. No obstante, Spring Batch se puede utilizar como un bloque de construcción para cumplir con tus requisitos.

    Puedes utilizar Spring JMS para escuchar la cola JMS. Cuando llegue un mensaje, se debe enviar a Spring Batch para su procesamiento. Puedes configurar Spring Batch para procesar los mensajes en lotes en función del número máximo de registros o de los parámetros de ventana de tiempo, lo que ocurra primero.

    Una vez que los mensajes hayan sido procesados, puedes realizar actualizaciones masivas e inserciones en la base de datos.

    Para mantener el proceso escuchando la cola indefinidamente, puedes utilizar un contenedor de escucha Spring JMS. Este contenedor continuará escuchando la cola en segundo plano, esperando la llegada de mensajes. Cuando llegue un mensaje, iniciará el flujo de procesamiento en lotes y manejo de mensajes como se describe anteriormente.

    En resumen, puedes utilizar Spring Batch y Spring JMS para implementar una solución que escuche una cola JMS, procese mensajes en lotes y realice actualizaciones/inserciones masivas en una base de datos. Para lograr la escucha indefinida en la cola, utiliza un contenedor de escucha Spring JMS.

Comments are closed.