我想知道是否有办法使用config.groovy或其他方法禁用作业。我看过你可以通过config.groovy禁用插件的帖子,但是没有看到任何关于工作的信息。我希望能够禁用所有作业,或者单独禁用每个作业而不必将其注释掉。谢谢。
答案 0 :(得分:7)
由于触发器被定义为作业中的静态成员,您可以在Config.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
}
}
MyJob.triggers = {}
答案 1 :(得分:2)
我假设您使用Quartz插件。在这种情况下,您可以通过Config.groovy
禁用它quartz {
autoStartup = false
}
答案 2 :(得分:1)
以下内容会有效地禁用每个作业(尽管这与完全禁用Quartz插件并不完全相同):
MyJob.diabled = true
MyOtherJob.disabled = false
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
}
}
为了避免在每个Job类中重复上面的代码,要么将其放入抽象基类中(或者使用元编程来实现相同的结果而不继承)。