`

ServletContextListener定时任务的使用

阅读更多
说明:每隔10秒执行一次方法。

  <listener>
       <listener-class>contextListener.ContextListener</listener-class>
  </listener>


import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

public class ContextListener implements ServletContextListener {
    
    java.util.Timer timer = Time.getSingle();
    
    public void contextInitialized(ServletContextEvent event) {
        timer = new java.util.Timer(true);
        event.getServletContext().log("定时器已启动");
        System.out.println("*******************定时器已启动");
        timer.schedule(new MyTask(event.getServletContext()), 0, 10*1000);
        System.out.println("********************已经添加任务调度表");
        event.getServletContext().log("已经添加任务调度表");
    }
    public void contextDestroyed(ServletContextEvent event) {
        timer.cancel();
        System.out.println("*************定时器销毁");
        event.getServletContext().log("定时器销毁");
    }
}
class Time{
	private Time() {}
	private static java.util.Timer timer = null;
	public static java.util.Timer getSingle() {
		if(timer == null){
			timer = new java.util.Timer();
		}
		return timer;
	}
}


import javax.servlet.ServletContext;

public class MyTask extends java.util.TimerTask{

    private ServletContext context = null;
    public MyTask(ServletContext context) {
        this.context = context;
    }

    public void run() {
    	System.out.println("开始执行方法");
    }
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics