spring学习系列 -- 定时器一TimerTask

转载 2015年07月10日 14:31:23

spring学习系列 -- 定时器一TimerTask

继承TimerTask,然后创建ScheduledTimerTask设置相关属性,最后吧ScheduledTimerTask添加到TimerFactoryBean中的list中完成配置。
  1. <!-- ScheduledTimerTask设置定时器属性 : period=定时器周期;delay=延迟多久启动   
  2.      86400000代表24个小时;timerTask=执行定时任务的类对象  --
 

 

spring定时器一般有两种

TimerTask、Quartz。本节只讲TimerTask

需要的包

aopalliance-1.0.jar

commons-logging-1.1.1.jar

spring-aop-3.0.6.RELEASE.jar

spring-asm-3.0.6.RELEASE.jar

spring-beans-3.0.6.RELEASE.jar

spring-context-3.0.6.RELEASE.jar

spring-core-3.0.6.RELEASE.jar

spring-expression-3.0.6.RELEASE.jar

 

TimerTask实例:同时启动2个定时器,执行任务

定时执行任务的类继承TimerTask:

Java代码  收藏代码
  1. public class EmailReportTask extends TimerTask{     
  2.     @Override     
  3.     public void run() {     
  4.         System.out.println(" EmailReportTask Run... ");  
  5.     }       
  6. }   
  7.   
  8. public class PageReportTask extends TimerTask{     
  9.     @Override     
  10.     public void run() {     
  11.         System.out.println("PageReportTask Run...");  
  12.     }       
  13. }     

 

spring的配置文件:

Xml代码  收藏代码
  1.     <!--  Bean  -->   
  2. <bean id="emailReportTask" class="com.hry.spring.timertask.EmailReportTask" />  
  3. <bean id="pageReportTask" class="com.hry.spring.timertask.PageReportTask" />  
  4.   
  5. <!-- ScheduledTimerTask设置定时器属性 : period=定时器周期;delay=延迟多久启动   
  6.      86400000代表24个小时;timerTask=执行定时任务的类对象  -->   
  7. <bean id="emailReportScheduleReportTask"   
  8.     class="org.springframework.scheduling.timer.ScheduledTimerTask">     
  9.     <property name="timerTask" ref="emailReportTask" />     
  10.     <property name="period" value="2000" />     
  11.     <property name="delay" value="1000" />     
  12. </bean>   
  13. <bean id="pageReportScheduleReportTask"   
  14.     class="org.springframework.scheduling.timer.ScheduledTimerTask">     
  15.     <property name="timerTask" ref="pageReportTask" />     
  16.     <property name="period" value="2000" />      
  17. </bean>   
  18.   
  19.     <!-- Spring的TimerFactoryBean负责启动定时任务;   
  20.         scheduledTimerTasks = 需要启动的定时器任务的列表-->  
  21.     <bean class="org.springframework.scheduling.timer.TimerFactoryBean">     
  22.     <property name="scheduledTimerTasks">     
  23.         <list>  
  24.             <ref bean="emailReportScheduleReportTask"/>  
  25.             <ref bean="pageReportScheduleReportTask"/>  
  26.         </list>    
  27.     </property>     
  28. </bean>   
 

测试代码:

Java代码  收藏代码
  1. public class TestBaseService {  
  2.     protected ApplicationContext ctx = new ClassPathXmlApplicationContext(  
  3.             new String[]{  
  4.                     "classpath:resource/spring.xml"  
  5.             }  
  6.     );  
  7.   
  8.     @Test  
  9.     public void timer(){  
  10.         try{  
  11.             // 这个是主线程,如果结束了,则定时器也会结束,所有设置时间要长  
  12.             Thread.sleep(36 * 1000);  
  13.         }catch(Exception e){  
  14.             e.printStackTrace();  
  15.         }  
  16.    
  17.     }  
  18. }  
 

 

参考文献:

相关文章推荐

spring + jdk TimerTask定时器

  • 2014年09月03日 17:05
  • 3.21MB
  • 下载

spring 定时器 (TimerTask and Quartz)

TimerTask  1. class extends TimerTask 2. 配置文件 1000 ...

Spring+TimerTask定时器的用法实例

Spring支持jdk内置的Timer类和Quartz Scheduler,以下先介绍jdk内置的TimerTask用法。我将在下一次的博客中介绍Quartz Scheduler的用法。 在tomc...

Handler和TimerTask实现的简易定时器

  • 2015年08月09日 02:25
  • 1.39MB
  • 下载

spring学习系列 -- 定时器三 两种定时器的比较

序   前2篇文章介绍了spring的两种定时器:TimerTask 和 Quartz,本篇要在这两篇的基础上,讲讲两者的区别。   精确度和功能    Quartz可以通过cron表达式精确...

spring学习系列 -- 定时器三 两种定时器的比较

http://huangrongyou.iteye.com/blog/1762869 序   前2篇文章介绍了spring的两种定时器:TimerTask 和 Quartz,本篇要在这...

spring学习系列 -- 定时器三 两种定时器的比较

http://huangrongyou.iteye.com/blog/1762869 序   前2篇文章介绍了spring的两种定时器:TimerTask 和 Quartz,本篇要在这两篇的基...

SPRING系列七之 定时器

在使用Spring的定时器之前,先看看JAVA怎样实现定时器。JAVA定时器之Timer思路: 创建定时任务类,该类继承 java.util.TimerTask; 启动定时任务(分为程序启动和web监...
  • jeysine
  • jeysine
  • 2017年03月31日 03:05
  • 53

Java 中Timer和TimerTask 定时器和定时任务使用的例子

这两个类使用起来非常方便,可以完成我们对定时器的绝大多数需求  Timer类是用来执行任务的类,它接受一个TimerTask做参数  Timer有两种执行任务的模式,最常用的是sche...

java中定时器Timer/TimerTask的使用方法

第一种方法:schedule(TimerTask task, long delay) 设定指定任务task在指定延迟delay后执行 第二种方法:schedule(TimerTask task, lo...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:spring学习系列 -- 定时器一TimerTask
举报原因:
原因补充:

(最多只允许输入30个字)