2 votes

Comment configurer un Spring Batch avec un seul lecteur et plusieurs rédacteurs d'articles ?

J'ai une situation où je dois effectuer des opérations sur 2 bases de données différentes comme indiqué ci-dessous.

stepBuilderFactory.get("some text")
                  .chunk(200) 
                  .reader(dataReader)
                  .writer(writeToDB1)
                  .writer(writeToDB2) 
                  .faultTolerant()
                  .skipLimit(10) 
                  .skip(DataAccessException.class)
                  .build();

Seul le deuxième writer est exécuté, en ignorant le premier writer. Est-ce que cela peut être réalisé en utilisant Spring Batch 3.x & Spring Boot 1.5.x?

1voto

CompositeItemWriter est ce dont vous avez besoin. Il vous permet de composer des écrivains délégués pour écrire des éléments vers de multiples destinations.

Lorsque vos écrivains délégués sont des ItemStream (ce qui semble être votre cas), vous devez les enregistrer en tant que flux dans l'étape afin que leurs méthodes de rappel de l'interface ItemStream soient correctement appelées aux points nécessaires du cycle de vie de l'étape (ou en bref, afin que leur contrat ItemStream soit correctement respecté). Vous pouvez trouver plus de détails à ce sujet dans la section Enregistrer un ItemStream avec une étape de la documentation de référence.

En espérant que cela vous aide.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X