首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

spring:quartz的小结

2012-08-21 
spring:quartz的总结Quartz 是一个强大的企业级 Schedule 工具,也是目前最好的开源 Schedule 工具。Spring

spring:quartz的总结
Quartz 是一个强大的企业级 Schedule 工具,也是目前最好的开源 Schedule 工具。Spring中也集成了quartz的应用,下面就讲一下如何在spring中使用quartz。
spring的配置:
xml 代码
<bean id="schedulerFactoryBean" "+this.dateRange.getStartDate().getHours()+" ";   
switch(this.frequency.getType()){   
case 0://无重复提醒   
   quartzStr += this.dateRange.getStartDate().getDate()+" "+(this.dateRange.getStartDate().getMonth()+1)+" ? "+(this.dateRange.getStartDate().getYear()+1900);   
   tiggernote+="起始时间:"+quartzStr;   
  break;   
case 1://每XX天提醒   
   quartzStr += "*/"+this.frequency.getEvery()+" * ? ";   
   tiggernote+="每"+this.frequency.getEvery()+"提醒";   
  break;   
case 2://每个工作日detail=1,2,3,4,5   
  //quartzStr += "? * 2-6";   
   quartzStr ="0 */1 * * * ?"; //测试   
   tiggernote+="每个工作日1,2,3,4,5提醒";   
  break;   
case 3://每every周后的星期detail日   
   quartzStr += "? * "+this.frequency.getDetail()+"/"+this.frequency.getEvery();   
   tiggernote+="每"+this.frequency.getEvery()+"周星期"+this.frequency.getDetail()+"日";   
  break;   
case 4://每every个月的detail日   
   quartzStr += this.frequency.getDetail()+" */"+this.frequency.getEvery()+" ?";   
   tiggernote+="每"+this.frequency.getEvery()+"月"+this.frequency.getDetail()+"日";   
  break;   
case 5://每every个月的第num1个星期num2   
   quartzStr += "? */"+this.frequency.getEvery()+" "+this.frequency.getNum2();   
  //星期   
  if(Integer.valueOf(this.frequency.getNum1()).intValue()>0){   
    quartzStr += "#"+this.frequency.getNum1();   
    tiggernote+="每"+this.frequency.getEvery()+"月第"+this.frequency.getNum1()+"个星期"+this.frequency.getNum2()+"日";   
   }else{   
    quartzStr += "L";   
    tiggernote+="每"+this.frequency.getEvery()+"月星期"+this.frequency.getNum2();   
   }   
  break;   
case 6://每年num1月num2日   
   quartzStr += this.frequency.getNum2()+" "+this.frequency.getNum1()+" ?";   
   tiggernote+="每年"+this.frequency.getNum1()+"月"+this.frequency.getNum2()+"日";   
  break;   
case 7://每年every月的第num1个星期num2   
   quartzStr += "? "+this.getFrequency().getEvery()+" "+this.getFrequency().getNum2();   
  //星期   
  if(Integer.valueOf(this.frequency.getNum1()).intValue()>0){   
    quartzStr += "#"+this.frequency.getNum1();   
    tiggernote+="每年"+this.getFrequency().getEvery()+"月的第"+this.frequency.getNum1()+"个星期"+this.getFrequency().getNum2()+"日";   
   }else{   
    quartzStr += "L";   
    tiggernote+="每年"+this.getFrequency().getEvery()+"月的"+this.getFrequency().getNum2()+"日";   
   }   
  break;   
default :   
}   
log.debug("quartzStr="+quartzStr);   
return quartzStr;   
}   
Scheduler:
Scheduler 是一个计划集,其中可以包含多个 JobDetail 和 Trigger 组成的计划任务。
在Quartz中,我们可以通过
SchedulerFactory scheduleFactory = new StdSchedulerFactory();
Scheduler scheduler = scheduleFactory.getScheduler();
来取得scheduler,通过调用scheduler.start()来启动quartz。
在spring中,org.springframework.scheduling.quartz.SchedulerFactoryBean是对 Quartz的org.quartz.Scheduler的封装,通过上面的配置,在spring启动的时候,quartz就会跟随着启动,不需要再用 scheduler.start()来启动。在spring中,如果要取得scheduler,可通过上面的配置文件那样,将 SchedulerFactoryBean注入到schdeuler中。 

热点排行