Comment mettre en œuvre lecteur pour de multiples interrogations, mais même élément de sortie?
Pour un Spring batch travail, nous avons 2 requêtes différentes sur la même table. La condition est de disposer d'un lecteur d'exécuter deux requêtes pour lire des données à partir de la même table.
Une façon peut être :
<batch:step id="firstStep" next="secondStep">
<batch:tasklet>
<batch:chunk reader="firstReader" writer="firstWriter" commit- interval="2">
</batch:chunk>
</batch:tasklet>
</batch:step>
<batch:step id="secondStep" next="thirdStep">
<batch:tasklet>
<batch:chunk reader="secondReader" writer="secondWriter"
commit-interval="2">
</batch:chunk>
</batch:tasklet>
</batch:step>
Mais cela demande tout à fait une autre étape qui est une copie de la première. Est-il un autre moyen pour obtenir le même ? Je suis à la recherche de quelque chose comme MultiResourceItemReader pour la DB en fonction des lecteurs qui agrège les données de l'ensemble.
- Récemment, j'ai eu tout à fait la même exigence de l'exécution d'un lecteur à plusieurs reprises pour différentes requêtes. Est-ce que votre solution nécessite une configuration xml? Si vous pouvez utiliser l'applet de configuration je peux vous montrer un exemple de la façon d'exécuter le même lecteur pour différentes requêtes.
- Oui. ma demande est largement basé sur xml de config. Cependant, pouvez-vous partager le java config ainsi
- MultiResourceItemReader sonne bien pour moi, vous pouvez vous référer à mkyong site (la pensée, ils l'ont fait pour la lecture de plusieurs fichiers, vous pouvez le faire pour la base de données de requêtes différentes.) mkyong.com/spring-batch/...
- Comment voulez-vous que les fichiers afin de les regrouper? Avez-vous besoin juste d'être ajouté?
- Pouvez-vous donner un exemple, comment pourrait-MultiResourceItemReader être utilisé pour la DB en fonction des lecteurs?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez créer une vue de base de données pour les différentes requêtes et de l'appeler comme vous l'appelez dans une JdbcPagingItemReader .Si ce n'est pas une option, alors il y a différentes façons , mais j'ai travaillé, est donnée ci-dessous.Le printemps a d'autre option que de bien, mais comme par développeur point suivant est certainement une option.
Créer deux élément de lecteur ...d'abord on est au-dessous
puis un autre lecteur du tableau 2
ensuite déléguer à votre lecture personnalisée
Et finit par utiliser cette coutume lecteur
Votre classe est donnée ci-dessous
}
Cette réponse est une adaptation de la réponse fournie par Hansjoerg sur ma question similaire, à l'égard de l'exécution d'une étape à plusieurs reprises: Spring Batch - lecture en Boucle d'un lecteur/processeur/écrivain étape
J'ai fourni deux factice des requêtes dans la liste des requêtes, vous devez fournir les requêtes. Le travail sera construit sur la base du montant des requêtes et dans cet exemple j'ai utilisé Spring Batch JdbcCursorItemReader de lire des données à partir d'une base de données.
Vous pouvez recréer cette configuration en utilisant l'exemple fourni par le Printemps https://spring.io/guides/gs/batch-processing/ et l'ajout d'un Acteur POJO et dernier mais pas moins, de supprimer les classes, vous n'avez pas besoin (vous n'aurez besoin que du BatchConfiguration et les classes de l'Application).