grails quartz工作从未被执行过

时间:2016-02-17 09:33:16

标签: grails cron quartz-scheduler quartz-core

我有这份工作:

class MyJob {
    static triggers = {
      cron name:"some job", cronExpression:"0 0 * * * ? *"
    }

    def execute() {
        log.info "job runs"
    }
}

这项工作应该每小时运行一次。我认为问题是cronExpression。这就是为什么我把它改成上面的表达式。在我有这个表达之前:

0 0 0/1 1/1 * ? *

但这些表达都不起作用。

我的设置:

我有10个工作,每5分钟到每月一次。 除了这一项之外,每项工作似乎都在运行......

我的问题:

  1. 为什么这份工作没有被执行?
  2. 是否有一个max_jobs参数负责这个?

1 个答案:

答案 0 :(得分:0)

  1. 不用年份尝试:

    static triggers = {
        cron name: 'myTrigger', cronExpression: "0 0 0-23 * * ?"
    }
    
  2. 你可以控制它f.e.通过预测执行时间和准备正确的表达方式(每月只触发两次;在每月的第一天,凌晨1点和凌晨2点):

    static triggers = {
        cron name: 'myTrigger', cronExpression: "0 0 1-2 1 * ?"
    }
    

    详细了解different types of triggers

  3.   

    目前插件支持三种类型的触发器:

         
        
    • simple - 每个定义的间隔执行一次(例如“每10秒钟”);
    •   
    • cron - 使用cron表达式执行作业(例如“每周一至周五上午8:00”);
    •   
    • custom - 您的Trigger接口的实现。
    •   

    还记得:

      

    触发器名称属性在所有触发器中必须是唯一的   应用

         

    默认情况下,在测试下运行时不会执行作业   环境。

    您可以找到更多示例here