Ich versuche, den besten Weg zu finden, um ein Timeout mit Quarz zu implementieren, aber ich möchte wissen, ob dieses Framework bereits eine Klasse oder Schnittstelle enthält, um es zu tun. Die Zeitüberschreitung, die es implementieren muss, ist, weil ich wissen möchte, wie lange Arbeit der Job war, und nehme die Entscheidung, den Job auszuschalten.Wie Timeout mit Quarz zu implementieren?
Antwort
Da die Java-Plattform keine Möglichkeit bietet, einen Thread zu stoppen, bietet Quartz keine Möglichkeit, einen Job in einem Thread zu stoppen.
Jobs müssen auf sich selbst achten, da Quartz keine Ahnung haben kann, welcher Code in ihrer execute() -Methode ist.
Ich würde vorschlagen, System.currentTimeMillis() am Anfang Ihres Auftrags execute() -Methode zu verwenden, um die aktuelle Zeit aufzuzeichnen, und dann jedes Mal durch die Hauptschleife Ihres Jobs verwenden Sie es erneut, um die aktuelle Zeit zu erhalten. Sehen Sie sich den Unterschied an, um zu sehen, ob Ihre maximale Zeit abgelaufen ist, und wenn dies der Fall ist, brechen Sie die Hauptschleife ab und verlassen Sie die Methode execute().
Siehe auch die InterruptableJob-Schnittstelle. Und die JobListener-Schnittstelle, die Ihnen Tools zum Hinzufügen einiger einfacher Funktionen zum Framework zur Verfügung stellt, die Ihren Anforderungen entsprechen. – jhouse
- 1. Wie Timeout & Retry für Restangular implementieren
- 2. Mehrere Scheduler mit Gral Quarz-Plugin
- 3. Implementieren von Arrays in Z3-Timeout
- 4. Wie Socket mit Timeout zu akzeptieren
- 5. Wie Timeout-Verhalten mit TestScheduler zu erreichen?
- 6. Wie überprüfen API-Timeout Timeout mit Curl?
- 7. Wie Session Timeout zu testen?
- 8. Trigger löschen in Quarz
- 9. Wie zu implementieren Navigationsschublade
- 10. wie zu implementieren IXunitTestCollectionFactory
- 11. Lauf zwei Jobs mit Quarz in Java
- 12. Wie LFU-Cache mit STL zu implementieren?
- 13. Wie zu implementieren: with_trait mit Fabrication
- 14. Wie SQLCipher zu implementieren, wenn SQLiteOpenHelper mit
- 15. Wie Multiparallax Scrolling mit Skrollr.js zu implementieren
- 16. Wie zu implementieren XQL Join mit JAVA?
- 17. Quarz jobDetail requestRecovery
- 18. Verwenden der Hibernate-Sitzung mit Quarz
- 19. Glatte Linien zeichnen Graph mit Quarz
- 20. Quarz Scheduler Jobmigration
- 21. Ein Enterprise-Scheduler für Python (wie Quarz)
- 22. Wie geplante Aufträge dynamisch mit Spring (und Quarz) gestartet werden?
- 23. Wie Timeout durch Referenz übergeben? Oder eine bessere Art zu implementieren?
- 24. Struts2 Tiles - wie zu implementieren?
- 25. Clion wie Projekt zu implementieren?
- 26. Quarz, Zeitplan Prozess immer lebendig
- 27. Federintegration + Cron + Quarz im Cluster?
- 28. Grails entlasten einen Quarz Job
- 29. wie Parallax Scrolling zu implementieren?
- 30. Operator löschen - wie zu implementieren?
Versuchen Sie den EndTime Parameter noch? http://www.quartz-scheduler.org/docs/tutorial/TutorialLesson05.html – Sean
Hallo, und danke für die Frage, ich benutze wirklich nicht, weil ich denke, dass Parameter nur für einen Job nach einer bestimmten Zeit zu beenden ist. Und ich möchte wissen, wie lange der Job die Operation zu tun, um eine Endlosschleife zu vermeiden – Jorge
Ok, also suchen Sie nach einer Möglichkeit, die Betriebszeit des Schedulers mehr als eine Zeitüberschreitung zu verfolgen. Sehen Sie sich die Dokumentation für die Zuhörer an. Ich habe sie nicht verwendet, aber sie scheinen die logische Wahl zu sein, um den Status/Zeitpunkt Ihrer laufenden Anwendung zu überwachen. – Sean