Ich habe einen Spring-Batchjob, der eine Oracle-Datenbank liest, transformiert und schreibt. Ich führe den Job über das CommandLineJobRunner-Dienstprogramm aus (mit einem fetten jar + Abhängigkeiten, die mit dem maven shade-Plugin generiert wurden); Der Job schlägt aufgrund des "Java-Heap-Speicherlimits erreicht" in der Mitte fehl, und der Job wird nicht als FEHLGESCHLAGEN markiert, sondern zeigt den Status STARTED an.Ein Spring-Batch-Job konnte nicht neu gestartet werden.
Ich habe versucht, den Job mit den gleichen Job-Parametern neu laufen (wie die Dokumentation vorschlagen), aber das gibt mir diese Fehlermeldung:
5:24:34.147 [main] ERROR o.s.b.c.l.s.CommandLineJobRunner - Job Terminated in error: A job execution for this job is already running: JobInstance: id=1, version=0, Job=[maskTableJob]
org.springframework.batch.core.repository.JobExecutionAlreadyRunningException: A Die Jobausführung für diesen Job wird bereits ausgeführt: JobInstance: id = 1, Version = 0, Job = [maskTableJob] unter org.springframework.batch.core.repository.support.SimpleJobRepository.createJobExecution (SimpleJobRepository.java:120) ~ [ maskeng-batch-1.0-SNAPSHOT-executable.jar: 1.0-SNAPSH
Ich habe alle möglichen Dinge (wie manuell s Setzen Sie den Status mit dem Argument -restart auf FAILED, aber ohne Erfolg. Gibt es etwas, das ich hier vermisse, da ich dachte, dass eine der Stärken des Frühjahrs-Stapels seine Fähigkeit ist, Jobs wieder aufzunehmen, wo sie aufgehört haben .... !!?
Das Ausführen des Jobs funktioniert nicht mit den gleichen Parametern. Fügen Sie die aktuelle Zeit als Parameter hinzu, um sie erneut auszuführen. Siehe http://www.mkyong.com/spring-batch/spring-batch-a-job-instance-already-exists-and-is-complete-for-parameters/. Überprüfen Sie auch die Dokumentation: http://docs.spring.io/spring-batch/reference/html/configureJob.html#d5e1320 –
Ja, ich weiß, aber ich muss einen bestimmten Job erneut ausführen, wie ich es weitermachen möchte wo es aufgehört hat. Mein Job verarbeitet Terabyte von Zeilen und kann bis zu Tage dauern, damit ich das verdammte Ding von Anfang an jedes Mal neu starten kann :-) –
Ich dachte, die Chunk-Verarbeitung in Schritten soll sich um solche Dinge kümmern –