Batch Ativar em apenas uma instância de servidor

votos
0

Eu tenho um balanceador de carga nginx na frente de duas instâncias tomcat cada um contém um aplicativo de inicialização primavera. Cada aplicativo de inicialização primavera executa um lote que grava os dados em um banco de dados. O lote executa todos os dias às 01:00. O problema é que ambos os casos, executar o lote simultaniously que eu não quero.

Existe uma maneira de manter as batchs implantados em duas instâncias e dizer tomcat ou nginx para iniciar o lote no servidor mestre (eo servidor escravo não executar o lote).

Se um dos servidores pára, o segundo servidor pode iniciar o lote em seu nome.

Existe uma ferramenta no nginx ou tomcat (ou alguma outra tecnologia) para fazer isso?

Agradeço antecipadamente.

Publicado 14/02/2020 em 00:02
fonte usuário
Em outras línguas...                            


1 respostas

votos
0

Spring Batch usa um banco de dados para os seus empregos (JobsRepository). Por padrão um na fonte de dados de memória é usado para manter o controle de trabalhos em execução e seu status. Em sua configuração, os 2 casos são (mais provável), utilizando sua própria base de dados de memória. Várias instâncias de Primavera Batch pode coordenar um com o outro como um cluster e pode-se executar trabalhos, enquanto o outro de backup actasa, se o banco de dados jobsRepository é compartilhado. Para isso, você precisa configurar os 2 casos de usar uma fonte de dados comum.

Aqui estão alguns docs: 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

Respondeu 14/02/2020 em 03:00
fonte usuário

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