项目中用到定时任务处理业务,故在spring中 配置定时器,自定义定时器类继承TimerTask 实现方式
1,自定义定时器类
package com.adks.base.framework.timertask;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.TimerTask;
public class MyTimerTask extends TimerTask {
@Override
public void run() {
// 定时器执行的业务逻辑
this.checkUserIntegral();
}
}
2,在 spring 主配置文件 appContext-main.xml 添加 spring定时器 <bean>
<bean id="myTimerTask" class="com.adks.base.framework.timertask.MyTimerTask">
</bean>
<bean id="scheduledTask" class="org.springframework.scheduling.timer.ScheduledTimerTask">
<!-- 运行过程中延时10000ms(10s) -->
<property name="delay" value="10000" />
<!-- 每隔50000ms(50s)运行一次 -->
<property name="period" value="3600000" /> <!-- 21600000= 6*3600*1000 每隔六个小时 执行一次 定时任务 -->
<property name="timerTask" ref="myTimerTask" />
</bean>
<!-- 用于启动定时器 -->
<bean id="timerFactory" class="org.springframework.scheduling.timer.TimerFactoryBean">
<property name="scheduledTimerTasks">
<list>
<!-- 这里是schedule列表 -->
<ref bean="scheduledTask" />
</list>
</property>
</bean>