定时执行任务的三种方法:1)java.util.Timer.2)ServletContextListener.3)org.springframework.scheduling.timer.ScheduledTimerTask
1 ) java.util.Timer这个方法应该是最常用的,不过这个方法需要手工启动你的任务:
Timer timer=new Timer();
timer.schedule(new ListByDayTimerTask(),10000,86400000);
这里的 ListByDayTimerTask 类必须 extends TimerTask 里面的 run() 方法。
2 ) ServletContextListener
这个方法在 web 容器环境比较方便,这样,在 web server 启动后就可以
自动运行该任务,不需要手工操作。
将 ListByDayListener implements ServletContextListener 接口,在
contextInitialized 方法中加入启动 Timer 的代码,在 contextDestroyed
方法中加入 cancel 该 Timer 的代码;然后在 web.xml 中,加入 listener:
<listener>
<listener-class>com.qq.customer.ListByDayListener</listener-class>
</listener>
3)org.springframework.scheduling.timer.ScheduledTimerTask
如果你用 spring ,那么你不需要写 Timer 类了,在 schedulingContext-timer
.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 id="timer" class="org.springframework.scheduling.timer.TimerFactoryBean">
<property name="scheduledTimerTasks">
<list>
<ref local="MyTimeTask1"/>