Je me demande s'il existe un moyen de désactiver les jobs à l'aide de config.groovy ou d'un autre moyen. J'ai vu des posts où l'on peut désactiver des plugins via config.groovy, mais je n'ai rien vu à propos des jobs. J'aimerais pouvoir soit désactiver tous les jobs, soit désactiver chaque job individuellement sans avoir à les commenter. Je vous remercie.
Réponses
Trop de publicités?Comme les déclencheurs sont définis en tant que membres statiques dans un travail, vous pouvez les remplacer dans la section Config.groovy
. Vous pouvez également supprimer les déclencheurs d'un travail particulier dans la configuration, ce qui le désactive :
MyJob.groovy
class MyJob {
static triggers = {
simple name: 'mySimpleTrigger', startDelay: 60000, repeatInterval: 1000
}
def execute() {
// Job code goes here
// This method won't get called using the configuration below
}
}
Config.groovy
MyJob.triggers = {}
Quelque chose comme ce qui suit désactiverait effectivement chaque tâche (bien que ce ne soit pas exactement la même chose que de désactiver complètement le plugin Quartz) :
Config.groovy
MyJob.diabled = true
MyOtherJob.disabled = false
MyJob.groovy
class MyJob {
def grailsApplication
static triggers = {
simple name: 'mySimpleTrigger', startDelay: 60000, repeatInterval: 1000
}
def execute() {
String className = getClass().simpleName
if (grailsApplication.config."$className".disabled) {
return
}
// Job code goes here
}
}
Pour éviter de répéter le code ci-dessus dans chaque classe de travail, placez-la dans une classe de base abstraite (ou utilisez la métaprogrammation pour obtenir le même résultat sans héritage).