Pregunta

Estoy usando Spring Batch para un sistema que hace una gran cantidad de operaciones por lotes.
Estoy usando SimpleJobRepository con DAO en memoria.
Me gustaría saber si hay una manera de evitar el uso de un JobRepository? algo similar al administrador de transacciones sin recursos?
La razón por la que estoy pidiendo es que el sistema debe funcionar constantemente sin necesidad de reiniciar y tengo algunas preocupaciones acerca de la memoria que se consume.
Sé que puedo utilizar una base de datos basada JobRepositry, pero francamente, yo realmente no necesito uno en absoluto.

Si no hay manera de hacerlo, así que se apreciaría si alguien me puede tranquilizar sobre el problema del consumo de memoria.

Gracias.

¿Fue útil?

Solución

Debe utilizar depósito de trabajos, ya que tiene información sobre el contexto trabajo. la solución para su caso es - hacer su depósito de trabajos con scope = "prototipo" esto cerato un nuevo DAO en memoria (aplicación mapa) para cada trabajo, y por lo tanto no hay problema de memoria. la sobrecarga de crear nueva instancia cada vez que no tiene sentido en términos de trabajos por lotes.

Otros consejos

Dentro de la Memoria aplicación tiene un gran inconveniente:. No puede usar multihilo en sus batchs

Por lo que debe utilizar un repositorio de base de datos. Le sugiero que use H2 SQL: se trata de una base de datos integrada muy ligero. Lo usamos para nuestras pruebas unitarias.

Funciona muy bien con Hibernate.

La ventaja de este método sobre uno de Ben es que puede conectarse a la base de datos que la memoria para comprobar los estados de puestos de trabajo (y la fecha de lanzamiento, etc ...).

Creo que el tiempo que mi código de procesamiento por lotes es seguro para subprocesos, no debería importar si el depósito está en la memoria o base de datos. Si usted puede perder algunos de los beneficios de agrupamiento que se puede obtener si está utilizando DB pero si sólo tengo un trabajo por lotes que se ejecuta en mi servidor y su uso de roscado múltiple para hacer su trabajo, que debe estar bien.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top