在项目中,定时器我们可能时常会用到,让定时器在我们指定的时间段来执行相应的操作,比如,每隔24小时执行一次数据库的备份。我们可以写一个类继承TimerTask,然后在run方法中写需要执行的任务,如果是在javaweb中可以写一个servlet,定期出发这个任务即可。如果使用的spring框架,那么利用spring框中的配置来配置一个定时器,效果可能会更好。
大致的步骤:
1.创建一个StatisticsTask类,目的是用来统计任务的,这个类继承TimerTask,run方法中写需要定期执行的任务
2.在applicationContext.xml配置文件中配置这个类
<bean id="dbTimeTask" class="com.xxx.StatisticsTask"></bean>
3.配置Spring的定时器:
<bean id="scheduDbTimeTask" class="org.springframework.scheduling.timer.ScheduledTimerTask">
<property name="timerTask" ref="dbTimeTask"></property>
<property name="period" value="60000"></property>
<property name="delay" value="10000"></property>
</bean>
其中:timeTask是要配置要执行的定时器任务类的实例,period是间隔时常,这里写的是60s,delay是延时
4.启动Spring定时器
<bean id="scheduleFactory" class="org.springframework.scheduling.timer.TimerFactoryBean">
<property name="scheduledTimerTasks">
<list>
<ref bean="scheduDbTimeTask"/>
</list>
</property>
</bean>