Traitement par lot avec spring batch
Bonjour,
Avec Spring batch, on peut préciser qu'on veut commiter un chunk avec l'attribut "commit-interval" :
Code:
1 2 3 4 5 6 7 8
|
<job id="">
<step id="">
<tasklet>
<chunk reader="" writer="" commit-interval="15" />
</tasklet>
</step>
</job> |
Dans cet exemple je vais commiter tous les 15 items traités. mais je vais traiter chaque item un par un.
Or mon besoin, ce serait de traiter les 15 item d'un seul coup.
En fait (pour explication) le traitement d'un item fait beaucoup de select en base pour avoir des valeurs de calcul. Si je lance mes traitement un par un, je vais faire les nombreux select à chaque fois
Code:
1 2
|
select foo from footable where id=1 // ici 1=l'id de l'item |
Mon idée c'est de faire les select d'un seul coup avec mes 15 id (correspondant aux 15 item).
Code:
1 2
|
select foo from footable where id in (1,2,3..., 15) |
Mon reader m'envoie une liste de 100000 id trouvés en base. Ensuite mon writer doit traiter les id.
Mais comment faire ?