Ich möchte einen Verlauf von Jobs verwalten, die von einem Quartz-Scheduler mit den folgenden Eigenschaften geplant wurden: 'Startzeit', 'Endzeit', 'Erfolg', 'Fehler ".So verwalten Sie einen Jobverlauf mit dem Quartz-Scheduler
Dafür gibt es zwei Schnittstellen: ITriggerListener
und IJobListener
(Ich verwende die C# -Namenskonvention für Schnittstellen, weil ich Quartz.NET verwende, aber die gleiche Frage könnte für die Java-Version gestellt werden).
IJobListener
hat eine und eine JobWasExecuted
Methode. Letzteres bietet eine JobExecutionException
, so dass Sie wissen, wenn etwas schief gelaufen ist. Es gibt jedoch keine Möglichkeit, und JobWasExecuted
zu korrelieren. Angenommen, mein Job dauert zehn Minuten. Ich starte es bei t0
und t0+2
(so überlappen sie sich). Ich bekomme zwei Anrufe zu JobToBeExecuted
und füge zwei Startzeiten in meine Geschichtstabelle ein. Wenn beide Jobs bei t1
und t1+2
enden, erhalte ich zwei Anrufe zu JobWasExecuted
. Woher weiß ich, welcher Datenbankeintrag bei jedem Anruf aktualisiert werden soll (um eine Endzeit mit der entsprechenden Startzeit zu speichern)?
ITriggerListener
hat ein anderes Problem. Es gibt keine Möglichkeit, Fehler innerhalb der TriggerComplete
Methode zu erhalten, wenn ein Job fehlgeschlagen ist.
Wie bekomme ich das gewünschte Verhalten?
Haben Sie eine Ahnung, wo ich so finden konnte ein Schlüssel? –
Derzeit ist der Schlüssel JobGroup, JobName und Datum und Uhrzeit. Es scheint, dass ein besserer Schlüssel in der Version 2.0 kommt. –