La méthode Scheduler.getCurrentlyExecutingJobs() dans le quartz n'est apparemment pas sensible au cluster. Quelle méthode utilisent les gens pour obtenir une liste de tous les emplois en cours d'exécution?Obtenir la liste de tous les travaux en cours d'exécution dans un cluster avec Quartz
6
A
Répondre
0
Je suppose que l'one-way est d'accéder à la base de données directement, bien que ce soit un peu risqué puisque l'API manipule complètement cela.
Il y a un problème dans leur Jira à cet effet. Leur conclusion est que vous avez besoin de revoir le mécanisme de planification si elles veulent répondre aux questions de cluster.
Vous pouvez consulter http://jira.opensymphony.com/browse/QUARTZ-372
3
On dirait que la refonte du mécanisme de planification ne se produit pas de sitôt.
Alors, voici comment je vérifie la table directement - ajouter le support de groupe si vous le souhaitez:
class QuartzClusterJobStatusService
{
def quartzScheduler
boolean isJobRunning(String job) {
return isJobRunningHere(job) || isJobRunningElsewhere(job)
}
boolean isJobRunningHere(String job) {
for (JobExecutionContext j : quartzScheduler.getCurrentlyExecutingJobs()) {
if (new JobKey(job,"GRAILS_JOBS").equals(j.jobDetail.key)) {
return true
}
}
return false
}
boolean isJobRunningElsewhere(String job) {
JobStoreSupport js = quartzScheduler.sched.resources.jobStore
if (!js.isClustered()) {
return false
}
Connection conn = DBConnectionManager.getInstance().getConnection(js.getDataSource());
PreparedStatement stmt = null
try {
stmt = conn.prepareStatement("SELECT 1 FROM " + js.getTablePrefix() + "FIRED_TRIGGERS where JOB_NAME = ?")
stmt.setString(1, job)
ResultSet rs = stmt.executeQuery()
return rs.next()
} finally {
if (stmt != null)
stmt.close()
}
}
}
Questions connexes
- 1. Obtenir une liste de tous les fichiers dans un répertoire
- 2. Comment obtenir la liste de tous les utilisateurs dans SharePoint
- 3. Obtention d'une liste de tous les modules du package en cours
- 4. QTP: Obtenir la liste de tous les liens dans un E-mail
- 5. Placement d'un planificateur Quartz en mode veille
- 6. obtenir une liste de tous les modèles de rails
- 7. emplois imbriqués dans Quartz
- 8. Comment modifier en bloc la commande d'étape du travail dans TOUS les travaux d'agent de serveur sql
- 9. Obtenir la liste de tous les formats de paramètres régionaux dans .net
- 10. Comment puis-je obtenir la valeur (chaîne) de la sélection en cours dans une liste déroulante?
- 11. Comment puis-je obtenir la liste de tous les attributs css de l'élément avec jQuery?
- 12. Comment obtenir une liste de tous les utilisateurs avec un groupe d'autorisation spécifique à Django
- 13. iPhone + Quartz: Comment obtenir un effet d'eau
- 14. Comment obtenir le fichier en cours, la classe en cours et la méthode actuelle avec Python?
- 15. Afficher "Chargement en cours ..." dans la zone de liste déroulante
- 16. Comment obtenir une liste de tous les assemblages actuellement chargés?
- 17. liste de tous les amis
- 18. Liste de tous les index
- 19. Comment obtenir la liste de tous les mots clés de recherche dans Lucene?
- 20. Notifier lors de l'exécution des travaux d'arrière-plan en cours d'exécution dans bash
- 21. Comment télécharger via FTP tous les fichiers avec une date en cours dans leur nom?
- 22. Obtenir la liste des applications en cours d'exécution commandés par la dernière utilisation
- 23. Liste les fichiers récursivement dans Linux CLI avec le chemin relatif au répertoire en cours
- 24. Liste des processus en cours d'exécution
- 25. obtenir tous les fichiers de script dans la page asp.net
- 26. Obtenir tous les tweets en majuscules
- 27. Applescript - liste toutes les applications en cours d'exécution
- 28. Comment obtenir la liste des applications en cours d'exécution à l'aide de PowerShell ou VBScript
- 29. Obtention d'une liste des flux de travail en cours d'exécution?
- 30. Comment obtenir tous les fichiers dans un répertoire avec certaine extension en C#?