2010-07-05 3 views
5

У меня есть Кварц кодируется следующим образом и первая работа отлично работает:Запуск два рабочих мест с кварцем в Java

JobDetail jd = null; 
CronTrigger ct = null; 
jd = new JobDetail("Job1", "Group1", Job1.class); 
ct = new CronTrigger("cronTrigger1","Group1","0/5 * * * * ?"); 
scheduler.scheduleJob(jd, ct); 
jd = new JobDetail("Job2", "Group2", Job2.class); 
ct = new CronTrigger("cronTrigger2","Group2","0/20 * * * * ?"); 
scheduler.scheduleJob(jd, ct); 

Но я нахожу, что Job2, который является полностью отделено работой Job1, не будет выполнять ,

Планировщик запускается с использованием прослушивателя на Java. Я также попытался использовать scheduler.addJob (jd, true); но ничего не меняется. Я запускаю Java через JVM на окнах 7.

ответ

1

Как вы знаете, что работа не запускается? Если вы замените Job1.class на Job2.class, он все еще не работает? Когда вы меняете порядок, в который они добавляются в планировщик, или оставляете только Job2? Или если вы разделите Job2, чтобы печатать сообщение только на консоли?

Я подозреваю, что Job2 исполнение умирает с исключением.

+0

Я попытался изменить порядок заданий и попробовал множество отладочных сообщений на обоих. но работает только 1 работа. –

+0

Таким образом, в Job2 должна быть ошибка. Оберните все в execute() в try {...} catch (Throwable t) {t.printStackTrace(); } и посмотрим, что произойдет. –

+0

Плохая логика с моей стороны. Моя вина! И теперь, чтобы разобраться в хронологических таймингах, чтобы одно задание выполнялось по часам, а другое - через полчаса. –

Смежные вопросы