您好,登錄后才能下訂單哦!
本文實(shí)例講述了Java Web實(shí)現(xiàn)添加定時(shí)任務(wù)的方法。分享給大家供大家參考,具體如下:
定時(shí)任務(wù)時(shí)間控制類
/** * 定時(shí)任務(wù)時(shí)間控制 * * @author liming * */ public class TimerManager { // 時(shí)間間隔 private static final long PERIOD_DAY = 24 * 60 * 60 * 1000; public TimerManager() { Calendar calendar = Calendar.getInstance(); /*** 定制每日00:00執(zhí)行方法 ***/ calendar.set(Calendar.HOUR_OF_DAY, 0); calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.SECOND, 0); Date date = calendar.getTime(); //執(zhí)行定時(shí)任務(wù)的時(shí)間 // 在啟動(dòng)服務(wù)器時(shí)如果第一次執(zhí)行定時(shí)任務(wù)的時(shí)間小于當(dāng)前的時(shí)間任務(wù)會(huì)立即執(zhí)行。 // 因此為了防止重啟服務(wù)器造成任務(wù)重復(fù)執(zhí)行,需要將執(zhí)行定時(shí)任務(wù)的時(shí)間修改為第二天。 if (date.before(new Date())) { date = this.addDay(date, 1); } Timer timer = new Timer(); DailyDataTimerTask task = new DailyDataTimerTask(); // 任務(wù)執(zhí)行間隔。 timer.schedule(task, date, PERIOD_DAY); } // 增加或減少天數(shù) public Date addDay(Date date, int num) { Calendar startDT = Calendar.getInstance(); startDT.setTime(date); startDT.add(Calendar.DAY_OF_MONTH, num); return startDT.getTime(); } }
定時(shí)任務(wù)操作主體類
/** * 定時(shí)任務(wù)操作主體 * * @author liming * */ public class DailyDataTimerTask extends TimerTask { private static Logger log = Logger.getLogger(DailyDataTimerTask.class); @Override public void run() { try { //在這里寫你要執(zhí)行的內(nèi)容 System.out.println("come in DailyDataTimerTask"); } catch (Exception e) { log.info("-------------解析信息發(fā)生異常--------------"); } } }
定時(shí)任務(wù)監(jiān)聽(tīng)器
/** * 定時(shí)任務(wù)監(jiān)聽(tīng)器 * * @author liming * */ public class DailyDataTaskListener implements ServletContextListener { public void contextInitialized(ServletContextEvent event) { new TimerManager(); } public void contextDestroyed(ServletContextEvent event) { } }
web.xml添加監(jiān)聽(tīng)器
<!--加載每日數(shù)據(jù)更新定時(shí)任務(wù)文件--> <listener> <listener-class> com.honsto.web.job.DailyDataTaskListener </listener-class> </listener>
更多關(guān)于java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java文件與目錄操作技巧匯總》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》和《Java緩存操作技巧匯總》
希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。