2011-10-13 2 views
3

Bonjour, je crée une application qui exécute la méthode d'une classe basée sur une expression cron. Pour cela j'utilise le quartz de printemps dans lequel je dois configurer tous ces trucs dans mon fichier de printemps cela fonctionne bien et les travaux s'exécutent basé sur l'expression de cron, mais maintenant je veux suspendre la prochaine exécution d'un travail particulier dans la classe java sur le choix d'un utilisateur de l'interface utilisateur. Alors est-il possible de le faire?comment suspendre le travail dans le planificateur à quartz?

Puis-je obtenir les détails de tous les travaux en cours dans le contexte? si c'est le cas, je peux filtrer les travaux et essayer de suspendre ce travail pour la prochaine exécution.

+0

Quel est l'état de l'entreprise, sur lequel vous souhaitez passer? Y a-t-il? Si oui, modélisez cette condition en tant que logique de travail (si (condition) puis exécutez else skip ...) – blob

+0

merci blob pour la réponse. Je planifie à travers l'expression cron qui est chaque lundi ou chaque minute basée sur cronExpression maintenant si je veux passer l'exécution pour la prochaine fois alors comment pouvons-nous le faire? –

+0

Vous supprimez simplement le travail du planificateur et le readd quand l'utilisateur le réactive? – ZeissS

Répondre

4

Je l'ai travail par utilisation du code ci-dessous

stdScheduler est un scheduleFactoryBean

String groupnames[] = stdScheduler.getJobGroupNames(); 
for (String groupName : groupnames) { 
    String[] jobNames = stdScheduler.getJobNames(groupName); 
    for (String jobName : jobNames) { 
      if (jobName.equals("jobName")) { 
        stdScheduler.pauseJob(jobName, groupName); 
      } 
    } 
}   
3

Nous pouvons utiliser la méthode stdScheduler.pauseJob (JobKey jobKey) pour réduire le nombre de boucles mentionnées dans le code ci-dessus

+0

nous avons juste jobName est disponible, donc je pense que nous devons itérer à travers la boucle. Est-ce qu'il y a un autre moyen ? –

Questions connexes