在使用quartz框架的時候遇到的一個問題,具體如下:
在2013-07-16 10:04:57從頁面添加CronTrigger的表達式如下0 0/30 * ? * * * 。每隔30分鐘執行一次,但是持久化到數據庫中的下一次觸發事件是 2013-07-16 10:30:00 ,即第一次執行是在26分鐘後。
在2013-07-16 10:04:57從頁面添加CronTrigger的表達式如下0 0/20 * ? * * * 。每隔20分鐘執行一次,但是持久化到數據庫中的下一次觸發事件是 2013-07-16 10:20:00,即第一次執行是在16分鐘後。
在2013-07-16 10:54:57從頁面添加CronTrigger的表達式如下0 0/30 * ? * * * 。每隔30分鐘執行一次,但是持久化到數據庫中的下一次觸發事件是 2013-07-16 11:00:00,即第一次執行是在6分鐘後。
具體是如何確定第一次執行的時間的?
如果我沒有理解錯的話,應該是概念略有混淆.
首先,我們確定* 表示所有值. 例如:在分的字段上設置 "*",表示每一分鐘都會觸發。
而如果是數字,則代表,在指定的時間觸發.
/ 用於遞增觸發。如在秒上面設置"0 0/20" 表示從0分開始,每增20分觸發(0,20,40)。如果設置的是"0 5/20" 則觸發時間為(5,25,45) 這樣,你應該就對第一次執行時間有明白了.假如設置的"0 */20"是而*這個是指每一個.第一次初始化的時候假如是是10:04:57 , 則啟動時間為(5,25,45) , 如果時間是10:53:57 則是會在11點的(4,24,44)執行.
所以,現在你應該可以確定第一次執行時間了.