planificateur.getCurrentlyExecutingJobs() devrait fonctionner dans la plupart des cas. Mais rappelez-vous de ne pas l'utiliser en classe d'Emploi, d'utilisation ExecutingJobsManager(un JobListener) pour mettre le travail en cours d'exécution à une table de hachage, qui vont à l'avant de la classe d'emploi, afin d'utiliser cette méthode de vérification de l'emploi est en cours d'exécution reviendrons très certainement vrai. Une approche simple consiste à vérifier que le feu les temps sont différents:
Également d'avis que cette méthode n'est pas clusters. C'est, il ne retourne que les Travaux en cours d'exécution dans le Planificateur de l'instance, et non pas à travers l'ensemble du cluster. Si vous exécutez Quartz dans un cluster, il ne fonctionnera pas correctement.
est-il possible de le faire dans un Quartz de cluster?
Si vous remarquez dans le QUARTZ_TRIGGERS table, il y a un TRIGGER_STATE colonne. Cela vous indique l'état de la gâchette (TriggerState) pour un travail particulier. En toute probabilité, votre application ne dispose pas d'une interface directe à cette table, mais le planificateur quartz fait, et vous pouvez vérifier l'état de cette façon:
Je ne veux pas faire la liste de tous les travaux en cours d'exécution. Je vais donner {jobid, jobgroup}. cela dépend de mon entrée, je devrais obtenir le résultat. Cette méthode renvoie une liste de JobExecutionContext. Vous pouvez parcourir la liste et sélectionner uniquement les éléments qui correspondent à l'id de groupe et que vous fournissez. Pour obtenir le groupe, vous pouvez faire: String group = context.getJobDetail().getGroup(); comme l'a suggéré, vous pouvez facilement vérifier le résultat de l'ordonnanceur par l'appel de méthode et de recherche par jobkey ou jobdetail
planificateur.getCurrentlyExecutingJobs() devrait fonctionner dans la plupart des cas. Mais rappelez-vous de ne pas l'utiliser en classe d'Emploi, d'utilisation ExecutingJobsManager(un JobListener) pour mettre le travail en cours d'exécution à une table de hachage, qui vont à l'avant de la classe d'emploi, afin d'utiliser cette méthode de vérification de l'emploi est en cours d'exécution reviendrons très certainement vrai. Une approche simple consiste à vérifier que le feu les temps sont différents:
Également d'avis que cette méthode n'est pas clusters. C'est, il ne retourne que les Travaux en cours d'exécution dans le Planificateur de l'instance, et non pas à travers l'ensemble du cluster. Si vous exécutez Quartz dans un cluster, il ne fonctionnera pas correctement.
OriginalL'auteur arganzheng
Si vous remarquez dans le QUARTZ_TRIGGERS table, il y a un TRIGGER_STATE colonne. Cela vous indique l'état de la gâchette (TriggerState) pour un travail particulier. En toute probabilité, votre application ne dispose pas d'une interface directe à cette table, mais le planificateur quartz fait, et vous pouvez vérifier l'état de cette façon:
OriginalL'auteur ccu
Avez-vous regardé ce réponse? Essayez avec:
Cette méthode renvoie une liste de JobExecutionContext. Vous pouvez parcourir la liste et sélectionner uniquement les éléments qui correspondent à l'id de groupe et que vous fournissez. Pour obtenir le groupe, vous pouvez faire:
String group = context.getJobDetail().getGroup();
comme l'a suggéré, vous pouvez facilement vérifier le résultat de l'ordonnanceur par l'appel de méthode et de recherche par jobkey ou jobdetail
OriginalL'auteur rafaborrego