2015-11-19 44 views
0

我正在使用Grails 2.4.5和plugin quartz 1.0.2。我的工作:Grails石英startdelay不起作用

class NotWellpaidJob { 
    def staticaService 
    static triggers = { 
     cron name: 'cronTrigger',startDelay:3000, cronExpression: "0/20 58 16 ? * MON-FRI" 
    } 

    def execute() { 
     print new Date() 
    } 
} 

我的输出:

Thu Nov 19 16:58:00 CET 2015 
Thu Nov 19 16:58:20 CET 2015 
Thu Nov 19 16:58:40 CET 2015 

问:

为什么startDelay所占用没有3秒钟,第一个日期时间延迟第一次执行不周四11月19日16:58:03 CET 2015

回答

1

当您在cron触发器上设置startDelay时,该插件实质上是修改Quartz中的CronTriggerImpl类上传递给setStartTime的内容。

Quartz documentation,开始时间被定义为:

在该触发器的调度应该开始的时间。可能不是触发器的第一个实际触发时间,具体取决于触发器的 类型和 触发器的其他属性的设置。但是第一次实际首次不会在这个日期之前 。

那么你设置实际上是当工作是计划,而不是当它是发射的延迟。这实际上并没有改变第一次执行的着火时间。