grails - Cron Expression被多次调用

标签 grails cron quartz-scheduler grails-plugin

我试图每天在特定时间运行一份工作,以进行应该在每天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/

相关文章:

grails - 如何使用递归闭包从 groovy 中的列表构建树层次结构?

ruby-on-rails - 从 Rails 应用程序中监视数据库表的外部更改

grails - 使用自定义触发器和参数安排作业

java - 当您有多个服务器时,像 quartz 这样的作业调度程序将如何工作?

grails - quartz grails多实体环境

templates - Grails gsp模板。从gsp传递参数并接受其on模板

grails - Gradle 2.3中的Jcenter()异常

java - 直接 Java 和 Grails 之间的反射差异

cron - 全天以不同频率运行 Cron Job

kubernetes - 重启集群中的所有 k8s pod?