2010-07-05 7 views
5

J'ai Quartz codé comme suit et le premier emploi fonctionne parfaitement:Courir deux emplois avec Quartz en 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); 

Mais je trouve que Job2, ce qui est un travail à part entière à Job1, ne sera pas exécuter .

Le planificateur est démarré en utilisant un écouteur en Java. J'ai aussi essayé d'utiliser scheduler.addJob (jd, true); mais rien ne change. Je cours Java via une JVM sur Windows 7.

Répondre

1

Comment savez-vous que le travail ne fonctionne pas? Si vous remplacez Job1.class par Job2.class, cela échoue-t-il toujours? Lorsque vous permutez l'ordre dans lequel ils ont été ajoutés au planificateur, ou laissez seulement Job2? Ou si vous déposez Job2 pour imprimer uniquement un message à la console?

Je suspecte Job2 exécution meurt avec une exception.

+0

J'ai essayé de changer l'ordre des travaux et j'ai essayé de nombreux messages de débogage dans les deux cas. mais seul le travail 1 s'exécute. –

+0

Il doit donc y avoir un bug dans Job2. Enveloppez tout dans execute() dans try {...} catch (Throwable t) {t.printStackTrace(); } et voir ce qui se passe. –

+0

Mauvaise logique de ma part. Mea culpa! Et maintenant, pour trier les horaires cron afin qu'un travail fonctionne à l'heure et l'autre à la demi-heure. –