Pregunta

Estoy intentando aprender Spring Batch , pero guía de inicio es muy confuso. Comentarios como

  

Puedes tener una buena idea sobre   cómo configurar un trabajo mediante el examen de la   pruebas unitarias en el   org.springframework.batch.sample   paquete (en src / main / java) y el   configuración en   src / main / resources / jobs.

no son exactamente útiles. ¡También me parece muy complicado el proyecto de muestra (17 espacios de nombres no vacíos con 109 clases)! ¿Hay un lugar más sencillo para comenzar con Spring Batch?

Otros consejos

Estoy de acuerdo en que la guía del usuario es muy confusa (en cualquier caso, comparada con la guía del usuario de Spring Core). No aborda adecuadamente algunos errores muy importantes con los que se encontrará en cualquier escenario de lotes moderadamente complejo.

Las cosas importantes que debe desglosar como nuevo motor de arranque y decidir cuáles son sus requisitos son

  • configuración de excepciones (cuándo omitir, cuándo fallar, cuándo reintentar)
  • uso del contexto de ejecución para mantener el estado (por ejemplo, cuándo usar el contexto de ejecución de pasos frente al contexto de ejecución del trabajo).
  • mantenimiento general del estado (use el alcance del paso, especialmente para los parámetros de entrada)

Sin embargo, vale la pena perseverar. La programación por lotes es muy diferente a otros estilos del lado del servidor y se beneficia enormemente de la abstracción de patrones habitual de Spring " enfoque.

Antes de saltar al vagón de lotes de primavera, es posible que desee leer lo que Cletus de SO tiene que decir acerca de sus defectos:

http: // www.cforcoding.com/2009/07/spring-batch-or-how-not-to-design-api.html .

Recientemente evalué Spring Batch y lo rechacé rápidamente una vez que me di cuenta de que no agregaba nada a mi proyecto, aparte de la hinchazón y los gastos generales. Spring Batch puede eventualmente convertirse en un producto aceptable (como los EJB lo hicieron bien esta vez), pero en este momento parece sospechosamente como una solución en busca de un problema.

Hace poco probé realmente Spring Batch. Diré que en mi implementación, utilicé un repositorio en memoria (porque los reinicios y los reintentos no fueron una prioridad en las circunstancias de mi proyecto), pero puedo apreciar lo que Richard dice acerca de JobRepository: básicamente tienes que profundizar para encontrar el esquema de la base de datos.

Para Spring Batch 2.1, proporcionan cierta documentación en el repositorio: http://static.springsource.org/spring-batch/reference/html/metaDataSchema.html , incluidas las discusiones sobre cómo tratar con implementaciones específicas de bases de datos. El DDL para crear las tablas se encuentra en el archivo JAR Spring Batch central:

spring-batch-core-2.1.0.RELEASE.jar: / org / springframework / batch / core / *. sql

Los scripts están presentes para DB2, Derby, H2, HSQLDB, MySQL, Oracle 10g, PostgreSQL, MS SQL y Sybase.

En este tutorial, crearemos una aplicación Spring Batch simple para demostrar cómo procesar una serie de trabajos en los que el propósito principal es importar una lista de registros delimitados por comas y de longitud fija. Además, agregaremos una interfaz web con Spring MVC para enseñar cómo activar trabajos manualmente y para que podamos inspeccionar visualmente los registros importados. En la capa de datos, usaremos JPA, Hibernate y MySQL.

  1. http://krams915.blogspot.jp/ 2012/02 / spring-batch-tutorial-part-1.html
  2. http://krams915.blogspot.jp/ 2012/02 / spring-batch-tutorial-part-2.html
  3. http://krams915.blogspot.jp/ 2012/02 / spring-batch-tutorial-part-3.html
  4. http://krams915.blogspot.jp/ 2012/02 / spring-batch-tutorial-part-4.html

https://github.com/langmi/spring-batch-examples

Esto contiene algunos ejemplos básicos bastante buenos.

Acabo de comenzar a considerar Spring Batch como un posible reemplazo de nuestro marco de trabajo por lotes interno. En realidad, la creación de un servidor por lotes con la capacidad de programar trabajos y una interfaz JMX en la parte superior para proporcionar una visión general de las instancias de trabajos en ejecución / ejecutadas anteriormente ha tomado poco más de un día. Sin embargo, como Caoilte, estoy encontrando problemas con la documentación. El principal, y uno que no está en la documentación o en los javadocs, es qué tablas requiere JobRepository. El valor predeterminado es tener un JobRepository de persistencia de base de datos, que es uno de los requisitos de mi nuevo servidor, pero no puedo encontrar ninguna mención de las tablas requeridas. He tenido que buscar en Google por cualquier mención de ellos (si están en la documentación, con mucho gusto pondré sal en mi humilde pastel).

Creo que crear un lote para que se ejecute dentro de Spring Batch es una tarea bastante compleja, dada la amplia gama de opciones de configuración disponibles para usted. Esta es una fortaleza en mis ojos. Brinda oportunidades para configurar tareas complejas por lotes en xml, que aún no he encontrado en ningún otro marco por lotes (que yo sepa). Pero si realmente no quería aprovechar el poder de Spring Batch, ¿por qué no crear un trabajo con un solo paso de tasklet? (Pero luego debe preguntarse si vale la pena).

Lástima que ustedes lo hayan abandonado, el marco es realmente genial. Pero si alguien más necesita un inicio rápido, intente: Spring Batch Quick Iniciar

/ Anatoly

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