2010-07-05 15 views
5

mam Quartz kodowane w następujący sposób i pierwsza praca przebiega doskonale:Running dwie prace z kwarcu w Javie

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); 

Ale jestem stwierdzenia, że ​​Job2, co jest całkowicie oddzielne zadanie Job1, nie będzie wykonywał .

Harmonogram jest uruchamiany za pomocą detektora w Javie. Próbowałem również using scheduler.addJob (jd, true); ale nic się nie zmienia. Używam Java przez maszynę wirtualną JVM w systemie Windows 7.

Odpowiedz

1

Skąd wiadomo, że praca nie działa? Jeśli zastąpisz Job1.class dla Job2.class, czy nadal się nie udaje? Kiedy zamieniasz kolejność, w której są dodawane do programu planującego, lub pozostawiasz tylko numer Job2? Lub jeśli usuniesz komunikat o błędzie, aby wydrukować wiadomość tylko na konsolę?

Podejrzewam, że wykonanie to umiera z wyjątkiem.

+0

Próbowałem zmienić kolejność zadań i próbowałem wielu komunikatów debugowania w obu. ale działa tylko zadanie 1. –

+0

Musi więc występować błąd w Job2. Zawiń wszystko w execute() w try {...} catch (Throwable t) {t.printStackTrace(); } i zobacz, co się stanie. –

+0

Zła logika z mojej strony. Mea culpa! A teraz, aby uporządkować czasy crona, tak aby jedno zadanie działało na godzinę, a drugie na pół godziny. –