Ich habe ein einfaches Programm mit Spring Batch Input Reader, Writer arbeiten. Der Zweck des Programms ist es, eine CSV-Datei einfach zu lesen.Spring Batch Commit-Intervall-Konfiguration funktioniert nicht
Ich habe die commit-interval
auf 5 gesetzt. Die CSV-Datei hatte nur 5 Datensätze, aber aus irgendeinem Grund wurde der Writer 3 mal aufgerufen, obwohl die commit-interval
auf 5 gesetzt war. Ich hatte erwartet, dass der Schreiber nur einmal aufgerufen werden würde Mein Verständnis, dass der Artikel Leser und Prozessor würde jedes Element Zeile für Zeile lesen und dann der Schreiber würde alle 5 auf einmal verarbeiten. Ich denke, ich bin mir nicht sicher, wie sich das Commit-Intervall auswirkt. Irgendwelche Ratschläge?
Der Grund für meine Frage ist, dass ich eine Million Datensätze habe, die ich lesen und mit einer Java-Sammlung zum nächsten Schritt weiterleiten muss. Jetzt versuche ich, aus einer kleinen Datei nur den letzten Teil zu lesen, dessen Nummer gleich ist Das angegebene commit-interval wird mit StepExecution an den nächsten Schritt übergeben.Die vorherigen Datensätze werden nicht übergeben.Wie kann ich sicherstellen, dass alle Datensätze übergeben werden.Wird die Commit-Intervall-Hilfe geändert oder gibt es einen anderen Ansatz? – user5053360
Ich benutze den ExecutionContext und ExecutionContextPromotionListener für diese. Aber nur der letzte Chunk, der gleich dem Commit-Intervall ist, wird gesetzt und im nächsten Schritt gelesen. – user5053360
Bitte teilen Sie die Konfigurationsdatei. Ich möchte wissen, welche Art von "Reader", "Writer" und "Prozessor" Sie verwenden. – SyntaX