我正在尝试每天在特定时间运行一份工作,以便进行测试,这应该是每天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分钟运行一次)不再有效。
答案 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 * * * ?"
}
}