利用Tomcat的监听器达到定时执行任务的功能,转贴网上的代码,做为一个资料收集:
主程序: SysContextListener .java
import java.util.Timer;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class SysContextListener implements ServletContextListener
{
private Timer timer = null;
public void contextInitialized(ServletContextEvent event)
{
timer = new Timer(true);
timer.schedule(new exportHistoryBean(event.getServletContext()),0,20*1000); //调用exportHistoryBean,0表示任务无延迟,5*1000表示每隔5秒执行任务,60*60*1000表示一个小时。
}
public void contextDestroyed(ServletContextEvent event)
{
timer.cancel();
}
}
需要执行的任务:exportHistoryBean .java
import java.util.Calendar;
import java.util.TimerTask;
import javax.servlet.ServletContext;
public class exportHistoryBean extends TimerTask
{
private static final int C_SCHEDULE_HOUR =0;
private static boolean isRunning = false;
private ServletContext context =null;
public exportHistoryBean(ServletContext context)
{
this.context = context;
}
public void run()
{
Calendar c =Calendar.getInstance();
if(!isRunning)
{
System.out.println("间隔二十钟来定时执行任务");
}
}
}
最后需要在tomcat/WEB-INF/web.xml中注册一个监听器:如下,
<listener>
<listener-class>com.comingnet.timerTest.SysContextListener</listener-class>
</listener>