JavaWeb 在程序启动时,定时执行计划任务。利用ServletContextListener在web服务启动时,启动计划任务
1.实现ServletContextListener接口,在contextInitialized()方法里建立Timer和TimerTask;
2.在TimerTask实现类里的run方法里写业务;
3.在web.xml配置配置;
代理片段:
1.
public class DealTableTimer implements ServletContextListener {
private static Timer timer = null;
public static Timer getTimer(){
if(timer==null) {
return timer = new Timer();
}
return timer;
}
public DealTableTimer() {
super();
}
@Override
public void contextInitialized(ServletContextEvent servletContextEvent) {
if(timer == null) {
getTimer();
}
servletContextEvent.getServletContext().log("【INFO】定时器启动.");
timer.schedule(new DealTableTimerTask(),1000,5000);
}
@Override
public void contextDestroyed(ServletContextEvent servletContextEvent) {
timer.cancel();
servletContextEvent.getServletContext().log("【INFO】定时器结束.");
}
}
2.
public class DealTableTimerTask extends TimerTask {
@Override
public void run() {
//.....
}
}
3.web.xml
<listener>
<listener-class>com.DealTableTimer</listener-class>
</listener>