2010-07-05 9 views
5

ho quarzo codificato come segue e il primo lavoro eseguito alla perfezione:Esecuzione di due lavori con quarzo 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); 

Ma ho constatato che Job2, che è un lavoro completamente separato per Job1, non verrà eseguito .

Lo scheduler viene avviato utilizzando un listener in Java. Ho anche provato a usare scheduler.addJob (jd, true); ma nulla cambia. Sto eseguendo Java attraverso una JVM su Windows 7.

risposta

1

Come fai a sapere che il lavoro non viene eseguito? Se sostituisci Job1.class per Job2.class, fallisce ancora? Quando si scambia l'ordine in cui vengono aggiunti allo scheduler o si lascia solo Job2? O se si rimuove Job2 per stampare solo un messaggio alla console?

Ho il sospetto che l'esecuzione di Job2 muoia con un'eccezione.

+0

Ho provato a modificare l'ordine dei lavori e ho provato numerosi messaggi di debug in entrambi. ma solo il lavoro 1 viene eseguito. –

+0

Quindi deve esserci un errore in Job2. Avvolgi tutto in execute() in try {...} catch (Throwable t) {t.printStackTrace(); } e vedi cosa succede. –

+0

Scarsa logica da parte mia. Colpa mia! E ora per risolvere i tempi di cron in modo che un lavoro venga eseguito all'ora e l'altro alla mezz'ora. –

Problemi correlati