在grails中设置Quartz的repeatInterval值

时间:2013-12-31 12:04:49

标签: grails groovy quartz-scheduler

我想从数据库中获取一个值,然后将其设置为grails中Quartz插件中作业的repeatInterval值。我这样做了。

class StartJob {
     def interval = Settings.first().interval

    static triggers = {
        simple name: 'mySimpleTrigger', startDelay: 2000, repeatInterval:interval

    }
    def group = "MyGroup"
    def execute(){
        //do something
    }
}

从表Settings中获取第一行,然后获取其interval列并将其放入简单触发器中。现在的问题是,间隔是非静态的,触发器是静态的,由于不匹配而产生错误。我该如何处理这种情况?有没有办法解决这个问题,从其他地方触发工作等等。?

2 个答案:

答案 0 :(得分:1)

  

类StartJob {

 static def interval =  Settings.getAll().get(0).interval

static triggers = {
    simple name: 'mySimpleTrigger', startDelay: 2000, repeatInterval:interval

}
def group = "MyGroup"
def execute(){
    //do something
} }

答案 1 :(得分:1)

  

有没有办法解决这个问题,从其他地方触发工作   等等。?

是的,你可以像这样手动安排工作:

  MyJob.schedule(Long repeatInterval, Integer repeatCount?, Map params?)

请参阅此处的其他示例:http://grails-plugins.github.io/grails-quartz/guide/triggers.html