WEB程序如何執行定時任務。(轉)

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章