新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Java:Web應(yīng)用下實(shí)現(xiàn)定時任務(wù)的簡便方法
在Web方式下,如果我們要實(shí)現(xiàn)定期執(zhí)行某些任務(wù)的話,除了用quartz等第三方開源工具外,我們可以使用Timer和TimeTask來在Java中完成指定的定時任務(wù):

成都創(chuàng)新互聯(lián)公司專注于企業(yè)成都全網(wǎng)營銷推廣、網(wǎng)站重做改版、福州網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、成都h5網(wǎng)站建設(shè)、商城網(wǎng)站制作、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價格優(yōu)惠性價比高,為福州等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
第一步:創(chuàng)建一個任務(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; /** * 定時器 */ private Timer timer; /** * 在Web應(yīng)用啟動時初始化任務(wù) */ public void contextInitialized(ServletContextEvent event) { //定義定時器 timer = new Timer("數(shù)據(jù)庫表備份",true); //啟動備份任務(wù),每月(4個星期)執(zhí)行一次 timer.schedule(new BackUpTableTask(),NO_DELAY, PERIOD_WEEK * 4); // timer.schedule(new BackUpTableTask(),NO_DELAY, 30000); } /** * 在Web應(yīng)用結(jié)束時停止任務(wù) */ public void contextDestroyed(ServletContextEvent event) { timer.cancel(); // 定時器銷毀 } } |
第二步:創(chuàng)建一個Java時間任務(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中添加一個監(jiān)聽器
| 以下是引用片段: ***.TaskManager 要定期執(zhí)行的任務(wù) |
那么在web服務(wù)器啟動的時候,Java中的定時任務(wù)也被啟動,并且會周期性的執(zhí)行
文章題目:Java:Web應(yīng)用下實(shí)現(xiàn)定時任務(wù)的簡便方法
網(wǎng)站網(wǎng)址:http://www.5511xx.com/article/djigoes.html


咨詢
建站咨詢
