首頁| 新聞| 娛樂| 游戲| 科普| 文學| 編程| 系統| 數據庫| 建站| 學院| 產品| 網管| 維修| 辦公| 熱點
在WEB應用下實現定時任務的簡便方法
在web方式下,假如我們要實現定期執行某些任務的話,除了用quartz等第三方開源工具外,我們可以使用Timer和TimeTask來完成指定的定時任務:
第一步:創建一個任務治理類,實現ServletContextListener 接口
以下是引用片段:
public class TaskManager implements ServletContextListener { /** * 天天的毫秒數 */ public static final long PERIOD_DAY = DateUtils.MILLIS_IN_DAY; /** * 一周內的毫秒數 */ 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("數據庫表備份",true); //啟動備份任務,每月(4個星期)執行一次 timer.schedule(new BackUpTableTask(),NO_DELAY, PERIOD_WEEK * 4);// timer.schedule(new BackUpTableTask(),NO_DELAY, 30000); } /** * 在Web應用結束時停止任務 */ public void contextDestroyed(ServletContextEvent event) { timer.cancel(); // 定時器銷毀 }}
第二步:創建一個時間任務類
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("開始執行任務..."); //開始任務 //working add what you want to do log.debug("執行任務完成..."); //任務完成 isRunning = false; } else { log.debug("上一次任務執行還未結束..."); //上一次任務執行還未結束 } } }
第三步:在web中添加一個監聽器
<listener> <listener-class>***.TaskManager</listener-class> <description>要定期執行的任務</description> </listener>
在web服務器啟動的時候,任務也被啟動,并且會周期性的執行。
索泰發布一款GTX 1070 Mini迷
AMD新旗艦顯卡輕松干翻NVIDIA
索泰發布一款GTX 1070 Mini迷你版本:小機
芭蕾舞蹈表演,真實美到極致
下午茶時間,悠然自得的休憩
充斥這繁華奢靡氣息的城市迪拜風景圖片
從山間到田野再到大海美麗的自然風景圖片
肉食主義者的最愛美食烤肉圖片
夏日甜心草莓美食圖片
人逢知己千杯少,喝酒搞笑圖集
搞笑試卷,學生惡搞答題
新聞熱點
疑難解答
圖片精選
使用ASP建設私人搜索引擎
華為短消息中心的發展與應用
移動通信計費及客戶服務系統
移動客戶服務中心系統
網友關注