利用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>