2010-07-05 10 views
5

Ich habe Quartz wie folgt codiert und der erste Auftrag läuft perfekt:Lauf zwei Jobs mit Quarz in 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); 

Aber ich finde, dass Job2, die eine völlig eigenständige Aufgabe zu Job1 ist, wird nicht ausgeführt .

Der Scheduler wird mit einem Listener in Java gestartet. Ich habe auch versucht mit scheduler.addJob (jd, true); aber nichts ändert sich. Ich verwende Java über eine JVM unter Windows 7.

Antwort

1

Woher weißt du, dass der Job nicht ausgeführt wird? Wenn Sie Job1.class für Job2.class ersetzen, schlägt es noch fehl? Wenn Sie die Reihenfolge wechseln, in der sie zum Scheduler hinzugefügt werden, oder lassen Sie nur Job2? Oder wenn Sie Job2 ausziehen, um nur eine Nachricht an die Konsole zu drucken?

Ich vermute Job2 Ausführung stirbt mit Ausnahme.

+0

Ich habe versucht, die Reihenfolge der Aufträge zu ändern und habe zahlreiche Debug-Meldungen in beiden versucht. aber nur Job 1 läuft. –

+0

Also muss es einen Fehler in Job2 geben. Alles in execute() in try {...} umschließen (Throwable t) {t.printStackTrace(); } und sehen, was passiert. –

+0

Schlechte Logik meinerseits. Mea Schuld! Und jetzt, um die Cron-Zeiten zu sortieren, so dass ein Job zur vollen Stunde und der andere zur halben Stunde läuft. –