2010-08-24 5 views
6

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?

+0

Versuchen Sie den EndTime Parameter noch? http://www.quartz-scheduler.org/docs/tutorial/TutorialLesson05.html – Sean

+0

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

+0

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

Antwort

8

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().

+1

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