我试图每天在特定时间运行一份工作,以进行应该在每天11:20:00进行测试的目的,而实际上,应该在每天23:59:59进行一项测试。无论出于什么原因,作业每5分钟就会不断触发,我不确定为什么。在这里查看代码:
static triggers = {
cron name: 'reportTrigger', cronExpression: "0 20 11 ? * * *"
}
def execute(){
//execute code that isn't relevant here
}
我使用的是grailsquartz插件的2.0.9版本,我尝试了较新的版本,但这导致其他作业(实际上必须每5分钟运行一次)不再起作用。
最佳答案
quartz cron语法与* nix的语法有些不同。它有6个参数,第一个是秒而不是分钟
由于这是grails 2插件,因此很难再找到文档,但通常最后一个参数应该是?
,如页面底部https://github.com/9ci/grails-quartz2所述。因此,您的表达方式将是:0 20 11 * * ?
for 11:20:00
另外,如果您想为PRODUCTION输入不同的条目并进行测试,则可以这样添加:
static triggers = {
if (Environment.current == Environment.PRODUCTION) {
cron cronExpression: "0 0 * * * ?"
} else {
cron cronExpression: "0 */1 * * * ?"
}
}
关于grails - Cron Expression被多次调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50737764/