Question

J'essaie d'apprendre le lot de printemps , mais le Le guide de démarrage est très déroutant. Des commentaires comme

  

Vous pouvez avoir une très bonne idée de   comment créer un emploi en examinant les   tests unitaires dans le   org.springframework.batch.sample   package (dans src / main / java) et le   configuration en   src / main / resources / jobs.

ne sont pas vraiment utiles. De plus, je trouve le projet exemple très compliqué (17 espaces-noms non vides avec 109 classes)! Existe-t-il un endroit plus simple pour commencer avec Spring Batch?

Autres conseils

Je conviens que le guide de l’utilisateur est très déroutant (en tout cas, comparé au guide de l’utilisateur de Spring Core). Il ne résout pas correctement certains problèmes très importants que vous rencontrerez dans tous les scénarios de lot moyennement complexes.

Les éléments importants que vous devez explorer en tant que nouveau démarreur et définir vos besoins, sont,

  • configuration des exceptions (quand ignorer, quand échouer, quand réessayer)
  • utilisation du contexte d'exécution pour conserver l'état (par exemple, quand utiliser le contexte d'exécution d'étape par rapport au contexte d'exécution de travail).
  • maintenance générale de l'état (utilisez l'étape Step, en particulier pour les paramètres d'entrée)

Cela vaut la peine de persévérer cependant. La programmation par lots est très différente des autres styles côté serveur et profite grandement de l’abstraction habituelle de Spring. approche.

Avant de monter dans le wagon Spring Batch, vous voudrez peut-être lire ce que le propre cletus de SO a à propos de ses lacunes:

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

J'ai récemment évalué Spring Batch et je l'ai rapidement rejeté une fois que je me suis rendu compte qu'il n'y avait rien à ajouter à mon projet, mis à part le gonflement et les frais généraux. Spring Batch pourrait éventuellement devenir un produit OK (un peu comme les EJB l’ont bien compris cette fois-ci), mais pour le moment, cela ressemble étrangement à une solution à la recherche d’un problème.

J'ai récemment essayé véritablement Spring Batch. Je dirai que dans mon implémentation, j'ai utilisé un référentiel en mémoire (car les redémarrages et les tentatives n’étaient pas une priorité dans les circonstances de mon projet), mais je peux comprendre ce que Richard a dit à propos de JobRepository: vous devez creuser profondément pour trouver le schéma de base de données.

Pour Spring Batch 2.1, ils fournissent une documentation sur le référentiel: http://static.springsource.org/spring-batch/reference/html/metaDataSchema.html , y compris des discussions sur la façon de traiter les implémentations spécifiques à la base de données. Les DDL permettant de créer les tables se trouvent dans le fichier JAR Spring Batch principal:

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

Des scripts sont présents pour DB2, Derby, H2, HSQLDB, MySQL, Oracle 10g, PostgreSQL, MS SQL et Sybase.

Dans ce didacticiel, nous allons créer une application Spring Batch simple pour montrer comment traiter une série de travaux dont le but principal est d'importer une liste d'enregistrements délimités par des virgules et de longueur fixe. De plus, nous allons ajouter une interface Web utilisant Spring MVC pour apprendre à déclencher des travaux manuellement et à inspecter visuellement les enregistrements importés. Dans la couche de données, nous utiliserons JPA, Hibernate et 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

Ceci contient quelques très bons exemples de base.

Je viens tout juste de commencer à considérer Spring Batch comme un remplacement possible de notre infrastructure de traitement par lots interne. En réalité, la création d'un serveur de traitement par lots avec la possibilité de planifier des travaux et une interface JMX permettant de fournir une vue d'ensemble des instances de travail en cours / exécutées précédemment n'a pris qu'un peu plus d'une journée. Cependant, comme Caoilte, je trouve des problèmes avec la documentation. La principale, et celle qui ne figure pas dans la documentation ni dans les javadocs, concerne les tables requises par JobRepository. La valeur par défaut consiste à disposer d'un JobRepository basé sur la persistance de la base de données, ce qui est l'une des exigences de mon nouveau serveur, mais je ne trouve aucune mention des tables requises. J'ai dû chercher sur Google haut et bas pour toute mention d'eux (s'ils sont dans la documentation, alors je mettrai volontiers du sel sur mon humble tourte).

Je pense que la création d'un lot à exécuter dans Spring Batch est une tâche plutôt complexe, compte tenu du vaste éventail d'options de configuration disponibles. C'est une force à mes yeux. Il offre la possibilité de configurer des tâches de traitement par lots complexes au format xml, que je n'ai pas encore trouvées dans un autre framework de traitement par lots (que je connaisse). Mais si vous ne voulez vraiment pas exploiter la puissance de Spring Batch, pourquoi ne pas simplement créer un travail en une seule étape de tâche (mais vous devez vous demander si cela en vaut la peine).

Dommage que vous l'ayez abandonné, le cadre est vraiment génial. Mais si quelqu'un d'autre a besoin d'un démarrage rapide, essayez: Spring Batch Quick Démarrer

/ Anatoly

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top