一个最简单的定时任务Quartz的例子

一个最简单的定时任务Quartz的例子

url:http://www.blogjava.net/zJun/archive/2007/09/05/142978.html

整理自: SpringSide中文论坛



实际执行任务的Class: CourseService
  public   class  CourseService   { 

   public   void  sendCourseEnrollmentReport()  { 
    System.out.println( " HelloWorld " ); 
  }  

} 
调度任务的Class: TaskApp
 import  org.springframework.beans.factory.BeanFactory; 
 import  org.springframework.beans.factory.xml.XmlBeanFactory; 
 import  org.springframework.core.io.FileSystemResource; 

 public   class  TaskApp   { 

   public   static   void  main(String[] args)  throws  Exception   { 
    BeanFactory factory  =   new  XmlBeanFactory( new  FileSystemResource(  " WebRoot/WEB-INF/classes/scheduleTask.xml " )); 
    factory.getBean( " z " ); 
  }  
    
}   
配置调度执行任务的配置文件: scheduleTask.xml
 <? xml version="1.0" encoding="UTF-8" ?>  
 <! DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd" >  
 < beans >  
   <!-- 起动Bean -->  
   < bean  id ="z"  class ="org.springframework.scheduling.quartz.SchedulerFactoryBean" >  
     < property  name ="triggers" >  
       < list >  
     < ref  bean ="cronReportTrigger"   />  
       </ list >  
     </ property >  
   </ bean >  
   <!-- 实际的工作Bean -->  
   < bean  id ="courseService"  class ="CourseService" > 
   </ bean >  
   <!-- jobBean用于设定启动时运用的Bean与方法 -->  
   < bean  id ="scheduledReportJobDetail"  class ="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean" >  
     < property  name ="targetObject" >  
     < ref  bean ="courseService"   />  
     </ property >  
     < property  name ="targetMethod" >  
       < value > sendCourseEnrollmentReport </ value >  
     </ property >  
   </ bean >  
   <!-- 定时器设定起动频率&启动时间我设的是每5秒起动一次 (0 0 4 * * ?每日四点起动.) -->  
   < bean  id ="cronReportTrigger"  class ="org.springframework.scheduling.quartz.CronTriggerBean" >  
     < property  name ="jobDetail" >  
     < ref  bean ="scheduledReportJobDetail"   />  
     </ property >  
     < property  name ="cronExpression" >  
       < value > 10,15,20,25,30,35,40,45,50,55 * * * * ? </ value >  
     </ property >  
   </ bean >  
 </ beans > 
关于配置文件中参数cronExpression的说明:
 字段 允许值 允许的特殊字符 
秒  0 - 59   ,  - * / 
分  0 - 59   ,  - * / 
小时  0 - 23   ,  - * / 
日期  1 - 31   ,  - * ? / L W C 
月份  1 - 12  或者 JAN-DEC  ,  - * / 
星期  1 - 7  或者 SUN-SAT  ,  - * ? / L C # 
年(可选) 留空 ,   1970 - 2099   ,  - * /  
表达式意义:
 " 0 0 12 * * ? "  每天中午12点触发 
 " 0 15 10 ? * * "  每天上午10:15触发 
 " 0 15 10 * * ? "  每天上午10:15触发 
 " 0 15 10 * * ? * "  每天上午10:15触发 
 " 0 15 10 * * ? 2005 "  2005年的每天上午10:15触发 
 " 0 * 14 * * ? "  在每天下午2点到下午2:59期间的每1分钟触发 
 " 0 0/5 14 * * ? "  在每天下午2点到下午2:55期间的每5分钟触发 
 " 0 0/5 14,18 * * ? "  在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发 
 " 0 0-5 14 * * ? "  在每天下午2点到下午2:05期间的每1分钟触发 
 " 0 10,44 14 ? 3 WED "  每年三月的星期三的下午2:10和2:44触发 
 " 0 15 10 ? * MON-FRI "  周一至周五的上午10:15触发 
 " 0 15 10 15 * ? "  每月15日上午10:15触发 
 " 0 15 10 L * ? "  每月最后一日的上午10:15触发 
 " 0 15 10 ? * 6L "  每月的最后一个星期五上午10:15触发 
 " 0 15 10 ? * 6L 2002-2005 "  2002年至2005年的每月的最后一个星期五上午10:15触发 
 " 0 15 10 ? * 6#3 "  每月的第三个星期五上午10:15触发 
 0   6  * * *          每天早上6点  
 0  */ 2  * * *        每两个小时  
 0   23 - 7 / 2 , 8  * * *  晚上11点到早上8点之间每两个小时,早上八点  
 0   11   4  *  1 - 3        每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点  
 0   4   1   1  *          1月1日早上4点  



Download:
Quartz

相关文档:
http://blog.csdn.net/ezerg/archive/2004/09/24/115894.aspx
http://blog.csdn.net/yujiebo025/archive/2005/09/13/479049.aspx
http://blog.csdn.net/mengz/archive/2005/01/13/252267.aspx
http://blog.csdn.net/jorwang/archive/2005/05/12/374111.aspx
http://blog.csdn.net/Mailbomb/archive/2005/10/26/517128.aspx
http://blog.csdn.net/stonecai/archive/2007/01/06/1475745.aspx
http://landerchan.spaces.live.com/Blog/cns!8759A7C5A9737DC!116.entry
http://hanxinyu.javaeye.com/blog/37000
http://www.onjava.com/pub/a/onjava/2004/03/10/quartz.html


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值