Etwas, ich bin nicht klar auf. Angenommen, ich habe im Laufe des Tages Jobs nach dem Zufallsprinzip geplant, und jeder Job dauert 30 Minuten. Sagen wir, ich habe fünf dieser Jobs am Laufen und Tomcat wird getötet. Starten die Jobs neu, wenn ich Tomcat mit meiner Anwendung starte, oder gehen die laufenden Jobs verloren, weil sie bereits abgefeuert haben?Quarz aktuelle Ausführung Job, wenn Tomcat getötet wird
Antwort
Kurze Antwort, standardmäßig sind aktuell laufenden Jobs gefeuert betrachtet und werden nicht wiederhergestellt
.. aber Sie requestRecovery Eigenschaft einstellen können, wenn Sie einen Job (JobDetail) bauen Quarz zu sagen, sich zu erholen, dass Ausführen von Jobs im Falle eines Absturzes aka "hard shutdown".
Zitiert die offizielle Dokumentation here am unteren Rand der Seite:
RequestsRecovery - wenn ein Job „fordert recovery“, und es wird während der Zeit eines ‚harte Abschaltung‘ des Vollstreckungs Scheduler (dh der Prozess läuft im Absturz, oder die Maschine ist ausgeschaltet), dann wird es erneut ausgeführt, wenn der Scheduler erneut gestartet wird. In diesem Fall gibt die Methode JobExecutionContext.isRecovering() true zurück.
So können Sie für exemple tun:
import static org.quartz.JobBuilder.*;
...
JobDetail job = newJob(MyJob.class)
.withIdentity("myJob", "group1")
.requestRecovery(true) //This is the guy!
.build();
...
Tomcat kümmert sich nicht um Ihre Arbeit. Es ist Ihre Aufgabe, den Job in Ihrer Webanwendung beim Beenden ordnungsgemäß zu beenden.
- 1. Zugang Frühlingsbohne in Quarz Job
- 2. Injektion in meinem Quarz Job
- 3. Grails entlasten einen Quarz Job
- 4. Grails Quarz-Plugin funktioniert nicht, wenn in Tomcat bereitgestellt
- 5. Stop Quarz Job auf dem lokalen Rechner
- 6. Quarz-Job nicht mehr Brennen nach Umplanen
- 7. Grails Call Taglib aus Quarz Job
- 8. Kill Subprozess, wenn Python-Prozess getötet wird?
- 9. Geofences funktioniert nicht, wenn App getötet wird
- 10. Android Emulator wird getötet
- 11. Unterbrochener Quarz-Auslöser wird nicht fortgesetzt
- 12. Django-Migration wird getötet
- 13. Schluck wird unregelmäßig getötet
- 14. Tomcat Aktuelle Threadanzahl
- 15. Wird durch einen Cron-Job die letzte Cron-Ausführung beendet?
- 16. Warum Spring Bean kann nicht in Quarz Job injiziert werden?
- 17. Synchron async-Methode von Quarz-Zeitplan-Job aufrufen
- 18. Python wird getötet (wahrscheinlich Speicherleck)
- 19. Trigger löschen in Quarz
- 20. Aufruf einer Methode in Anwendung-scoped Bohne aus Quarz Job
- 21. Java Quartz geplanter Job - gleichzeitige Ausführung von Job nicht zulassen
- 22. Meteor.js wird ohne Logs getötet
- 23. Quarz jobDetail requestRecovery
- 24. Geofence funktioniert nicht, wenn die App getötet wird
- 25. Bash speichern/redirect stdout und stderr wenn Programm getötet wird
- 26. Supervisord Restart Gruppe, wenn ein Prozess abstürzt/getötet wird
- 27. Clear-Back-Stack, wenn Anwendungsobjekt vom System getötet wird
- 28. Wie Push-Benachrichtigungen vom Server, wenn App getötet wird
- 29. Wie funktioniert ein Job-Scheduler wie Quarz, wenn Sie mehrere Server haben?
- 30. Spark-Streaming-Job-Scheduling die Ausführung steuern?
was ich bin nachdem es nicht Quartz die Aufträge erneut versuchen, die zur Zeit wurden die Ausführung oder nicht Quarz sie wegzuwerfen, Quarz Sinn kann nicht sauber von einem Jvm Absturz erholen wo ein Benutzer keine Möglichkeit hat, "den Job korrekt zu beenden" – user671731