分享

Spring Quartz如何动态配置时间

 goldbomb 2007-02-13

我们已经将页面的时间设置转为了Cron Expression,下面我记录了时间规则。

1) 记录时间规则

      我将时间规则存入数据库中,目的是为了生成历史日志,也可以存入XML文件中。当然您也可以省略此步,直接将转换后的规则放入相应的Quartz trigger中。

2) 更新任务触发器的时间设置

到了关键的一步了,也是最简单的一步,一个方法就可以实现了。
首先,我们需要通过trigger的名称得到一个CronTriggerBean;
其次,通过trigger的setCronExpression(String cronExp)方法将新的表达式注入;
最后,RESCHEDULE THE JOB,OK!

 1     /**
 2      * 自定义定时器调度时间
 3      *  @param
 triggerName 触发器名称
 4       *  @throws
 Exception 
 5       */

 6      public   void  updateNotificationInterval(String triggerName, String triggerId)
 7              throws  SchedulerException, ParseException 
{
 8          // 得到trigger

 9         CronTriggerBean trigger  =  (CronTriggerBean) scheduler.getTrigger(
10
                triggerName, Scheduler.DEFAULT_GROUP);
11          // 得到cron expression        

12         String cronExpression  =  schedulerDAO.getCronExpression(triggerId);
13          // 设置trigger的时间规则

14         trigger.setCronExpression(cronExpression);
15          // 重置job

16         scheduler.rescheduleJob(triggerName, Scheduler.DEFAULT_GROUP, trigger);
17     }

18

至此,目的达到了,快乐的看着您的任务在您自定义的时间下快乐的执行,您是否也想像‘Happy Feet‘中那只快乐的企鹅一样,Show段踢踏呢 ; - D




PS:忘了说我的Quartz任务是怎么配置的了,罪过,罪过。

< bean  id ="compareJob"
        class
="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean" >
        
< property  name ="targetObject"  ref ="compareService"   />
        
< property  name ="targetMethod"  value ="compare"   />
        
< property  name ="concurrent"  value ="false"   />
    
</ bean >  

    
< bean  id ="compareTrigger"

        class
="org.springframework.scheduling.quartz.CronTriggerBean" >
        
< property  name ="jobDetail"  ref ="compareJob"   />
        
< property  name ="cronExpression" >             
            
< value > 0 39 16 20 * ? </ value >
        
</ property >
    
</ bean >

< bean  id ="schedulerFactory"
        class
="org.springframework.scheduling.quartz.SchedulerFactoryBean" >
        
< property  name ="triggers" >
            
< list >                     
                     < ref  local ="compareTrigger"   />

            
</ list >
        
</ property >
    
</ bean >

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多