有的时候需要在程序运行时,定时执行一些程序,比如说统计流量、更新缓存数据等,通常要使用Listener和Timer,下面就是一个简单应用,目的就是时刻检查程序是否正在执行当中。
首先创建一个TimerTask
Code
public class LogTask extends TimerTask {
@Override
public void run() {
// TODO Auto-generated method stub
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println( sdf.format(new Date()) + "--this programe is running!");
}
}
接着创建监听程序
Code
public class LogListener implements ServletContextListener {
private Timer timer = null;
@Override
public void contextDestroyed(ServletContextEvent arg0) {
// TODO Auto-generated method stub
if (timer != null)
{
timer.cancel();
}
}
@Override
public void contextInitialized(ServletContextEvent arg0) {
// TODO Auto-generated method stub
if (timer == null)
{
timer = new Timer();
timer.schedule(new LogTask(), new Date(), 1000);
}
}
}
在web.xml配置
<listener>
<listener-class>org.heroking.web.LogListener</listener-class>
</listener>