在使用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分钟后。 在2013-07-16 10:54:57从页面添加CronTrigger的表达式如下0 0/40 * ? * * *   。每隔40分钟执行一次,但是持久化到数据库中的下一次触发事件是 2013-07-16 11:00:00,即第一次执行是在6分钟后。 具体是如何确定第一次执行的时间的?Quartz框架

解决方案 »

  1.   

    CSDN的一位同仁为我解惑,非常感谢popAnt兄,他的回答如下:
    如果我没有理解错的话,应该是概念略有混淆.
    首先,我们确定* 表示所有值. 例如:在分的字段上设置 "*",表示每一分钟都会触发。
    而如果是数字,则代表,在指定的时间触发.
    / 用于递增触发。如在秒上面设置"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)执行.
    所以,现在你应该可以确定第一次执行时间了.