2010-09-04 10 views
5

Ich verwende Quartz Scheduler v.1.8.0.Wie bekomme ich den Cron-Ausdruck Jobname und Gruppenname?

Wie bekomme ich den Cron-Ausdruck, der einem Job zugewiesen/angehängt wurde und mit CronTrigger geplant wurde? Ich habe in diesem Fall den Jobnamen und den Gruppennamen. Obwohl viele Trigger auf den gleichen Job zeigen können, ist es in meinem Fall nur einer.

Es gibt eine Methode in Scheduler-Klasse, Scheduler.getTriggersOfJob(jobName, groupName), aber es gibt nur Trigger Array zurück.

Beispiel cronexpression: 0 /5 10-20 * * ?

HINWEIS: Klasse CronTrigger erweitert Auslöser

Antwort

15

Sie können Scheduler.getTriggerOfJob verwenden. Diese Klasse gibt alle Trigger für einen gegebenen jobName und groupName in einem Trigger [] zurück.

Analysieren Sie dann den Inhalt dieses Arrays, testen Sie, ob der Trigger ein CronTrigger ist, und führen Sie ihn aus, um die CronTrigger-Instanz abzurufen. Dann sollte die Methode getCronExpression() das zurückgeben, wonach Sie suchen.

Hier ein Codebeispiel ist:

Trigger[] triggers = // ... (getTriggersOfJob) 
for (Trigger trigger : triggers) { 
    if (trigger instanceof CronTrigger) { 
     CronTrigger cronTrigger = (CronTrigger) trigger; 
     String cronExpr = cronTrigger.getCronExpression(); 
    } 
} 
+0

Danke, ist in der Lage meinen cronexpression wieder zu sehen. BTW, eine kleine Korrektur in Ihrem Codebeispiel: 'Cron ** T ** Rigger cronTrigger = (CronTrigger) Trigger;'. – Gnanam

+0

@Gnanam: Danke, das habe ich korrigiert :-) –