Demo #7: ejecución en multihilos

La demo del paquete demo5 es básicamente la misma que la del paquete demo1 (lectura de archivo e impresión por consola), con el mismo código Java, pero con la incorporación de una ejecución concurrente por configuración. La cantidad de hilos que se ejecutan se configura en el Step (paso).

Las clases

Para esto deberemos desarrollar dos clases:

  • Planeta, que representa cada una de las filas resultantes del query.
  • PlanetaFieldSetCreator, que se encargará de transformar un objeto Planeta en una línea nueva para el archivo resultante

La configuración

En el archivo de configuración spring-batch-demo.xml se ecuentra toda la configuración necesaria para Spring Batch. Los beans importantes declarados en este archivo:

  • trabajoBatchMultithread, que es el Job (Trabajo) en cuestión. Hace referencia a un único Step (Paso), el cual contiene un bean con un lector de items (itemReader) y un procesador de items (itemWriter). Además, e importante, este Step tiene configurado un taskExecutor, en el cual se indica que este step será ejecutado por 3 hilos concurrentes.
  • planetaItemReader, que será el encargado de ejecutar un query y transformar cada una de las filas en un objeto Planeta.
  • archivoPlanoItemWriter, que será el encargado de procesar cada uno de los Planeta leídos por planetaItemReader y generar una línea en el archivo de texto resultante.