IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API standards et tierces Java Discussion :

[Quartz] Job sur l'instance


Sujet :

API standards et tierces Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2010
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 121
    Par défaut [Quartz] Job sur l'instance
    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.

  2. #2
    Membre confirmé
    Inscrit en
    Septembre 2010
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 121
    Par défaut
    Non ba j'ai trouver la réponse en faite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     List<JobExecutionContext> jobExecutionContexts = jec.getScheduler().getCurrentlyExecutingJobs();
     
    if(jobExecutionContexts.size >1 ){
        return;
    }
    else{
     // Faire la tache
    }
    Ainsi il n'y a toujours que une seul tâche qui tourne.
    Si la cron n'est pas fini et qu'une nouvelle se relance alors la deuxième s’arrête.
    Cordialement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Versionning sur 2 instances Mysql
    Par genio dans le forum Outils
    Réponses: 5
    Dernier message: 17/01/2007, 12h41
  2. Execution d'un Job sur un serveur lie
    Par soulsidibe dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 05/12/2006, 16h24
  3. Réponses: 9
    Dernier message: 29/03/2006, 18h23
  4. Fenêtre d'execution des Jobs sur SQL
    Par fkgueye dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 20/12/2005, 15h50
  5. Réponses: 5
    Dernier message: 28/10/2005, 16h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo