2010-09-04 9 views
5

Я использую Quartz Scheduler v.1.8.0.Как получить выражение cron заданное имя и название группы?

Как получить выражение cron, которое было назначено/присоединено к заданию и запланировано с использованием CronTrigger? В этом случае у меня есть имя задания и имя группы. Хотя многие триггеры могут указывать на один и тот же Иов, в моем случае это только один.

В классе Scheduler есть метод, Scheduler.getTriggersOfJob(jobName, groupName), но он возвращает только Trigger массив.

Пример cronexpression: 0 /5 10-20 * * ?

Примечание: Класс CronTrigger расширяет триггер

ответ

15

Вы можете использовать Scheduler.getTriggerOfJob. Этот класс возвращает все триггеры для заданного имени_имя и groupName в триггере [].

Затем проанализируйте содержимое этого массива, проверьте, является ли триггер CronTrigger, и произведите его, чтобы получить экземпляр CronTrigger. Затем метод getCronExpression() должен возвращать то, что вы ищете.

Вот пример кода:

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

Спасибо, я в состоянии видеть мою cronexpression назад. BTW, небольшая коррекция в вашем примере кода: 'Cron ** T ** rigger cronTrigger = (CronTrigger) триггер;'. – Gnanam

+0

@ Гнанам: Спасибо, я исправил это :-) –