Java中定時器的使用
1、新建一個監聽類,用於監聽所有的定時器
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class WebFrameListener implements ServletContextListener
{
WebFrameServiceEntrance wfs;
/**
* 啟動
*/
public void contextInitialized(ServletContextEvent arg0)
{
/*
* 定時任務
* 1、基礎數據初始化,在啟動時執行一次;
*/
wfs = new WebFrameServiceEntrance();
wfs.webFrameServiceStart();
}
/**
* 銷毀
*/
public void contextDestroyed(ServletContextEvent arg0)
{
//調用結束的方法
wfs.webFrameServiceCancel();
}
}
2、監聽入口類
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Timer;
public class WebFrameServiceEntrance
{
/**
* 計時器,能夠在指定時間內重復的執行操作
*/
private Timer timer;
long IntervalTime = 60 * 1000;//執行的周期時間:1分鐘
public WebFrameServiceEntrance()
{
timer = new Timer();
}
/**
* 開始執行
*/
public void webFrameServiceStart()
{
/**
* 一次性調用,只在啟動Web服務時調用下方法,用於啟動時初始化相應內容
*/
//初始化系統配置-只執行一次
SystemProperties.init();
/**
* 增加調用定時任務,一分鐘一次
*/
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
Date date = calendar.getTime();
timer.schedule(new WebFrameServiceTimerTask(), date, IntervalTime);
}
/**
* 取消執行
*/
public void webFrameServiceCancel()
{
// System.out.println("取消定時任務掃描器!");
timer.cancel();
timer = null;
}
}
3、新建任務處理類
import java.util.TimerTask;
public class WebFrameServiceTimerTask extends TimerTask
{
/**
* 被周期調用執行的方法
*/
public void run()
{
//定時任務業務處理
}
}