使用listener做定时任务
package com.listener;import java.util.Date;import java.util.TimerTask;public class MyTask extends TimerTask{private static boolean isRunning = false;public void run() {// TODO Auto-generated method stubif(!isRunning){isRunning = true;System.out.println(new Date()+"任务开始");for (int i = 0; i <100; i++) {System.out.println(new Date()+"任务完成"+i+"/"+100);try {Thread.sleep(50);//休眠50毫秒进入下一次循环} catch (Exception e) {// TODO: handle exceptione.printStackTrace();}}isRunning = false;System.out.println(new Date()+"所有任务完成");}else{System.out.println(new Date()+"任务退出");}}}?package com.listener;import java.util.Date;import java.util.Timer;import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener;public class TestListener implements ServletContextListener {private Timer timer = null;public void contextDestroyed(ServletContextEvent sce) {timer.cancel();sce.getServletContext().log(new Date()+"计时器销毁");}public void contextInitialized(ServletContextEvent sce) {timer = new Timer(true);sce.getServletContext().log(new Date()+"计时器已经启动");timer.schedule(new MyTask(), 0,60*1000);//间隔一分钟执行下一次定时任务sce.getServletContext().log(new Date()+"计时器执行一次");}}?