自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Java:Web應用下實現(xiàn)定時任務的簡便方法

開發(fā) 后端
們可以使用Timer和TimeTask來在Java中完成指定的定時任務,還可以使用quartz等第三方開源工具。

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

  第一步:創(chuàng)建一個任務管理類,實現(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;
 /**
  * 定時器
  */
 private Timer timer;
 /**
  * 在Web應用啟動時初始化任務
  */
 public void contextInitialized(ServletContextEvent event) {
        //定義定時器
  timer = new Timer("數(shù)據(jù)庫表備份",true);
  //啟動備份任務,每月(4個星期)執(zhí)行一次
  timer.schedule(new BackUpTableTask(),NO_DELAY, PERIOD_WEEK * 4);
//  timer.schedule(new BackUpTableTask(),NO_DELAY, 30000);
 }
 /**
  * 在Web應用結束時停止任務
  */
 public void contextDestroyed(ServletContextEvent event) {
  timer.cancel(); // 定時器銷毀
 }
}

  第二步:創(chuàng)建一個Java時間任務類

以下是引用片段:
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í)行任務..."); //開始定時任務
   //working  add what you want to do
   log.debug("執(zhí)行任務完成..."); //任務完成
   isRunning = false;
  } else {
   log.debug("上一次任務執(zhí)行還未結束..."); //上一次任務執(zhí)行還未結束
  }
 }
}

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

以下是引用片段:
 
  ***.TaskManager
  要定期執(zhí)行的任務
 

  那么在web服務器啟動的時候,Java中的定時任務也被啟動,并且會周期性的執(zhí)行

【編輯推薦】

  1. 高手Java核心技術學習筆記
  2. 如何使用 JavaScript XSLT 處理 XML 文件
  3. JSP結合XML+XSLT將輸出轉(zhuǎn)換HTML
  4. Java通過JNI調(diào)用C語言的方法
  5. JAVA環(huán)境變量的設置
責任編輯:王觀 來源: 天極網(wǎng)
相關推薦

2010-06-02 17:31:10

MySQL定時任務

2025-03-12 09:54:02

2023-12-19 08:09:06

Python定時任務Cron表達式

2024-12-27 08:24:55

2020-12-21 07:31:23

實現(xiàn)單機JDK

2024-11-04 16:01:01

2024-01-31 08:38:57

Python定時任務函數(shù)

2024-02-26 11:12:33

定時任務線程

2021-11-22 12:35:40

Python命令定時任務

2024-01-22 08:53:00

策略任務RocketMQ

2024-05-31 13:07:29

.NET Core定時任務編程

2023-12-11 09:50:35

Linux定時器

2019-02-20 15:52:50

技術開發(fā)代碼

2021-03-09 14:12:07

Java 框架定時

2010-03-10 15:47:58

crontab定時任務

2024-10-15 16:41:35

2024-05-13 09:49:30

.NETQuartz庫Cron表達式

2021-08-05 07:28:25

Java實現(xiàn)方式

2009-10-28 10:05:29

Ubuntucrontab定時任務

2012-02-07 13:31:14

SpringJava
點贊
收藏

51CTO技術棧公眾號