Cron Expression被多次调用

时间:2018-06-07 09:30:03

标签: grails cron quartz-scheduler grails-plugin

我正在尝试每天在特定时间运行一份工作,以便进行测试,这应该是每天11点20分,而真正的事情应该是每天23:59:59。无论出于何种原因,工作每隔5分钟就会被触发,我不知道为什么。请参阅此处的代码:

 static triggers = {
    cron name: 'reportTrigger', cronExpression: "0 20 11 ? * * *"
}

def execute(){
    //execute code that isn't relevant here
}

我正在使用grails quartz插件的2.0.9版本,我尝试过更新的版本,但这导致其他作业(实际上必须每5分钟运行一次)不再有效。

1 个答案:

答案 0 :(得分:0)

quartz cron语法与* nix中的知识略有不同。它有6个参数,第一个是秒而不是分钟

由于这是grails 2插件,因此很难找到文档,但一般情况下,最后一个参数应为?,如页面底部https://github.com/9ci/grails-quartz2所述。所以你的表现是:0 20 11 * * ? 11:20:00

此外,如果您想为PRODUCTION和测试添加不同的条目,可以像这样添加:

static triggers = {
        if (Environment.current == Environment.PRODUCTION) {
            cron cronExpression: "0 0 * * * ?"
        } else {
            cron cronExpression: "0 */1 * * * ?"
        }
}