Bonjour,

Je suis sur un projet javaEE j'ai un job quartz qui s’exécute parfaitement.

Mon problème se situe sur le fait que le job déclenché par Quartz a un trigger avec une durée très courte 20 seconde et il peut y avoir plusieurs instance du même job déclancher en même temp (ce que je ne veux pas) .

J'aimerais savoir si un job est en cours. Alors tu ne relance pas un autre job.

J'arrive déjà à savoir si il y a plusieurs instance du même job :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
 List<JobExecutionContext> jobExecutionContexts = jec.getScheduler().getCurrentlyExecutingJobs();
 for (JobExecutionContext executionContext : jobExecutionContexts) {
                System.out.println(" JobKey.jobkey :  " + JobKey.jobKey("anyJobName", "group1"));
                System.out.println(" job instance :  " + executionContext.getJobInstance());
                if (executionContext.getJobDetail().getKey().equals(JobKey.jobKey("anyJobName", "group1")) && jobExecutionContexts.size() > 1) {
                    System.out.println(" Le job existe ");
                    return;
                }
else{
    // Make the tache
}
Mais ce code ne marche pas. Pourtant le raisonnement et l'algo me parait bon.

Si quelqu'un a une idée.