Activar por lotes en una sola instancia de servidor

votos
0

Tengo un equilibrador de carga nginx en frente de dos instancias Tomcat cada uno contiene una aplicación de arranque del resorte. Cada aplicación de inicio de la primavera ejecuta un lote que escribe datos en una base de datos. El lote se ejecuta todos los días a la 1am. El problema es que ambas instancias ejecutar el lote simultaneamente, que no quiero.

¿Hay una manera de mantener los batchs desplegados en dos casos y contar Tomcat o nginx para iniciar el proceso por lotes en el servidor maestro (y el servidor esclavo no se ejecuta el lote).

Si uno de los servidores se detiene, el segundo servidor podría iniciar el lote en su nombre.

¿Existe una herramienta en nginx o Tomcat (o alguna otra tecnología) para hacer eso?

gracias de antemano.

Publicado el 14/02/2020 a las 00:02
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
0

Spring Batch utiliza una base de datos para sus puestos de trabajo (JobsRepository). Por defecto una fuente de datos en la memoria se utiliza para realizar un seguimiento de los trabajos en ejecución y su estado. En su configuración, los 2 casos son (muy probablemente) utilizando su propia base de datos en memoria. Varias instancias de Spring Batch pueden coordinarse entre sí como un grupo y se puede ejecutar trabajos, mientras que la otra copia de seguridad ACTÚA, si la base de datos jobsRepository es compartida. Para ello, tiene que configurar los 2 casos utilizar una fuente de datos común.

Aquí están algunos documentos: https://docs.spring.io/spring-batch/docs/current/reference/html/index-single.html#jobrepository

https://docs.spring.io/spring-batch/docs/current/reference/html/job.html#configuringJobRepository

Respondida el 14/02/2020 a las 03:00
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more