2015-11-19 39 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,開始時間被定義爲:

在該觸發器的調度應該開始的時間。可能不是觸發器的第一個實際觸發時間,具體取決於觸發器的 類型和 觸發器的其他屬性的設置。但是第一次實際首次不會在這個日期之前 。

那麼你設置實際上是當工作是計劃,而不是當它是發射的延遲。這實際上並沒有改變第一次執行的着火時間。