Bonjour,
je voudrais parser des fichiers de logs en utilisant Spring batch pour ensuite générer des fichiers de stats en sortie. Les fichiers de logs en entrée sont tournant toutes les heures.
Ce batch va être exécuter avec une tâche cron. Je voudrais que ma classe qui lit les fichiers en entrée commence vérifier que le batch précédent a bien traiter le fichier de log de la dernière heure et si ce n'est pas le cas il faudrait que le reader rattrape le retard et traite le ou les fichiers qui n'ont pas été traité par la précédente occurrence du batch.

J'ai pensé à créer une méthode private dans le reader qui serait appeler par le constructeur. Au sein de cette méthode je vérifierai que les derniers fichiers ont bien été produits
Est-ce que vous penser que c'est une manière correcte de le faire ? ou bien y a t'il plus robuste ? plus élégant avec des méthodes annotées beforeXXX ? Et si oui quelles sont les annotations appropriées ? BeforeJob, BeforeStep.



Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
 
@Component("reader")
public class MyClassItemReader extends FlatFileItemReader<String> {
 
  public MyClassItemReader() {
        initialiseFileToParse();
    }
 
    private String[] input = {"fileOne","fileTwo"l};
 
    private int index = 0;
 
    private void initialiseFileToParse() {
       //ICI je décide de quels fichiers je dois parser
 
    }
 
  public String read() throws Exception {
       //????
 
    }
}