写一个定时任务,每个一段时间执行一次:
在web.xml配置一个监听器
<listener>
<listener-class>xxx.xxx.ContextListener</listener-class>
</listener>
public class ContextListener implements ServletContextListener {
private java.util.Timer timer = null;
public void contextInitialized(ServletContextEvent event) {
timer = new java.util.Timer(true);
event.getServletContext().log("启动定时器");
//定时执行任务
timer.schedule(new myTask(event.getServletContext()), 0, 50000);
}
public void contextDestroyed(ServletContextEvent event) {
timer.cancel();
event.getServletContext().log("停止定时器");
}
}
public class myTask extends TimerTask {
private static boolean isRunning = false;
private ServletContext context;
public myTask(ServletContext context) {
this.context = context;
}
public void run() {
if (!isRunning) {
isRunning = true;
context.log("开始执行任务");
doTask();
isRunning = false;
context.log("任务执行结束");
}
}else
{
context.log("上次任务还未结束");
}
}
private void doTask(){
//需要执行的动作
}
}