Grails - можно ли отключить работу с помощью config.groovy - PullRequest
3 голосов
/ 26 ноября 2011

Мне интересно, есть ли способ отключить задания, используя config.groovy или каким-либо другим способом.Я видел сообщения, где вы можете отключить плагины через config.groovy, но ничего не видел о рабочих местах.Я хотел бы иметь возможность отключить все задания или отключить каждое задание по отдельности, не комментируя их.Спасибо.

Ответы [ 3 ]

7 голосов
/ 25 октября 2013

Поскольку триггеры определены как статический элемент в задании, вы можете переопределить их в Config.groovy. Поэтому вы также можете удалить триггеры для определенного задания в конфигурации, тем самым отключив его:

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 = {}
2 голосов
/ 26 ноября 2011

Я полагаю, вы используете плагин Quartz. В этом случае вы можете отключить его через Config.groovy

quartz {
    autoStartup = false
}
1 голос
/ 28 ноября 2011

Что-то вроде следующего будет эффективно отключать каждое задание (хотя это не совсем то же самое, что полное отключение плагина 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
  }
}

Чтобы избежать повторения кода выше в каждом классе Job, либо поместите его в абстрактный базовый класс (либо используйте метапрограммирование для достижения того же результата без наследования).

...