" />

国产99福利精品视频|杨幂精品国产福利在线|国精品午夜福利视频不卡|欧美精品黄网站在线播放|精品国产乱码久久久久久久|国产大片中文字幕在线观看|国产肥熟女视频一区二区三区|国产乱码无码视频一区二区三区

北大青鳥老師講解:Java:Web應(yīng)用下實(shí)現(xiàn)定時(shí)任務(wù)的簡便方法

來源:北大青鳥飛迅校區(qū)|發(fā)布時(shí)間:2013-05-04 09:27:36

北大青鳥老師講解:Java:Web應(yīng)用下實(shí)現(xiàn)定時(shí)任務(wù)的簡便方法

  在web方式下,如果我們要實(shí)現(xiàn)定期執(zhí)行某些任務(wù)的話,除了用quartz等第三方開源工具外,我們可以使用Timer和TimeTask來完成指定的定時(shí)任務(wù):

  第一步:創(chuàng)建一個(gè)任務(wù)管理類,實(shí)現(xiàn)ServletContextListener 接口

以下是引用片段:
public class TaskManager implements ServletContextListener {
 /**
  * 每天的毫秒數(shù)
  */
 public static final long PERIOD_DAY = DateUtils.MILLIS_IN_DAY;
 /**
  * 一周內(nèi)的毫秒數(shù)
  */
 public static final long PERIOD_WEEK = PERIOD_DAY * 7;
 /**
  * 無延遲
  */
 public static final long NO_DELAY = 0;
 /**
  * 定時(shí)器
  */
 private Timer timer;
 /**
  * 在Web應(yīng)用啟動(dòng)時(shí)初始化任務(wù)
  */
 public void contextInitialized(ServletContextEvent event) {
        //定義定時(shí)器
  timer = new Timer("數(shù)據(jù)庫表備份",true);
  //啟動(dòng)備份任務(wù),每月(4個(gè)星期)執(zhí)行一次
  timer.schedule(new BackUpTableTask(),NO_DELAY, PERIOD_WEEK * 4);
//  timer.schedule(new BackUpTableTask(),NO_DELAY, 30000);
 }
 /**
  * 在Web應(yīng)用結(jié)束時(shí)停止任務(wù)
  */
 public void contextDestroyed(ServletContextEvent event) {
  timer.cancel(); // 定時(shí)器銷毀
 }
}

第二步:創(chuàng)建一個(gè)時(shí)間任務(wù)類

 

以下是引用片段:
public class BackUpTableTask extends TimerTask {
 private static Log log = LogFactory.getLog(BackUpTableTask.class);
 private static boolean isRunning = false;
 public void run() {
  if (!isRunning) {
   isRunning = true;
   log.debug("開始執(zhí)行任務(wù)..."); //開始任務(wù)
   //working  add what you want to do
   log.debug("執(zhí)行任務(wù)完成..."); //任務(wù)完成
   isRunning = false;
  } else {
   log.debug("上一次任務(wù)執(zhí)行還未結(jié)束..."); //上一次任務(wù)執(zhí)行還未結(jié)束
  }
 }
}

  第三步:在web中添加一個(gè)監(jiān)聽器

以下是引用片段:
 <listener>
  <listener-class>***.TaskManager</listener-class>
  <description>要定期執(zhí)行的任務(wù)</description>
 </listener>

  那么在web服務(wù)器啟動(dòng)的時(shí)候,任務(wù)也被啟動(dòng),并且會(huì)周期性的執(zhí)行

上一篇:用Java實(shí)現(xiàn)斷點(diǎn)續(xù)傳(HTTP)二
下一篇:北大青鳥老師講解:Java基礎(chǔ):JVM(Java 虛擬機(jī))的詳細(xì)講解

熱門話題

招生熱線: 4008-0731-86 / 0731-82186801

學(xué)校地址: 長沙市天心區(qū)團(tuán)結(jié)路6號(hào)

Copyright © 2006 | 湖南大計(jì)信息科技有限公司 版權(quán)所有

湘ICP備14017520號(hào)-3

關(guān)注我們
在線咨詢
嘿,我來幫您!