亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術(shù)文章
文章詳情頁

Java 定時(shí)器的使用示例

瀏覽:6日期:2022-08-24 14:06:24

最近要用到定時(shí)任務(wù),就是超過48小時(shí)的數(shù)據(jù)給關(guān)閉,前臺(tái)就不顯示了。還是頭一次使用java的定時(shí)器,。。java定時(shí)器使用Timer類。有時(shí)間得看下源碼了,看看具體咋弄的。

Timer主要用于Java線程里指定時(shí)間或周期運(yùn)行任務(wù)。Timer是線程安全的,但不提供實(shí)時(shí)性(real-time)保證。先看看調(diào)用timer的幾種方式。

/** * 這個(gè)方法是調(diào)度一個(gè)task,經(jīng)過2000(ms)后開始進(jìn)行調(diào)度,僅僅調(diào)度一次。 */ public static void timer1(){ Timer nTimer = new Timer(); nTimer.schedule(new TimerTask() { @Override public void run() {System.out.println('----設(shè)定要指定任務(wù)-----'); } },2000); } /** * 在指定的時(shí)間點(diǎn)time上調(diào)度一次。 */ public static void timer2() { Timer timer = new Timer(); timer.schedule(new TimerTask() { public void run() {System.out.println('-------延遲5000毫秒,每1000毫秒執(zhí)行一次--------'); } }, time); } /** * 延遲5000毫秒,每1000毫秒執(zhí)行一次 * 在5000(ms)后開始調(diào)度,每次調(diào)度完后,最少等待1000(ms)后才開始調(diào)度。 */ public static void timer3() { Timer timer = new Timer(); timer.scheduleAtFixedRate(new TimerTask() { public void run() {System.err.println('-------延遲5000毫秒,每1000毫秒執(zhí)行一次--------'); } }, 5000, 1000); } /** * 設(shè)置17:56執(zhí)行任務(wù)(第一次調(diào)度的時(shí)間),每過一天執(zhí)行一次 * java.util.Timer.scheduleAtFixedRate(TimerTask task, Date firstTime, long period) */ public static void timer4() { Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.HOUR_OF_DAY, 17); calendar.set(Calendar.MINUTE, 26); calendar.set(Calendar.SECOND, 0); Date time = calendar.getTime(); Timer timer = new Timer(); timer.scheduleAtFixedRate(new TimerTask() { public void run() {System.out.println('-------設(shè)定要指定任務(wù)--------'); } }, time, 1000 * 60 * 60 * 24);// 這里設(shè)定將延時(shí)每天固定執(zhí)行 }

以上就是調(diào)用的幾種方法,再貼下我的代碼

// 時(shí)間間隔(一天) long periodDay = 24 * 60 * 60 * 1000; Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.HOUR_OF_DAY, 1); // 凌晨1點(diǎn) calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.SECOND, 0); Date date = calendar.getTime(); // 第一次執(zhí)行定時(shí)任務(wù)的時(shí)間 // 如果第一次執(zhí)行定時(shí)任務(wù)的時(shí)間 小于當(dāng)前的時(shí)間 // 此時(shí)要在 第一次執(zhí)行定時(shí)任務(wù)的時(shí)間加一天,以便此任務(wù)在下個(gè)時(shí)間點(diǎn)執(zhí)行。如果不加一天,任務(wù)會(huì)立即執(zhí)行。 if (date.before(new Date())) { date = this.addDay(date, 1); } new Timer().scheduleAtFixedRate(new TimerTask() { public void run() {Date now = new Date();//查出所有未關(guān)閉數(shù)據(jù)List<BankWork> list = bankWorkService.findList(new BankWork().setStatus(Const.DEFAULT_STATUS));//篩選出超過48小時(shí)的未關(guān)閉數(shù)據(jù)list = list.stream().filter(e -> { try { return judgmentDate(e.getModifiedTime(), now); } catch (Exception e1) { e1.printStackTrace(); } return false;}).collect(Collectors.toList());list.forEach(e -> e.setStatus(Const.BANK_WORK_STATUS_OK).setModifiedTime(now));//修改所有未關(guān)閉數(shù)據(jù)為關(guān)閉bankWorkService.updateAsGroup(list); } }, date, periodDay); // 判斷時(shí)間是否超過48小時(shí) private static boolean judgmentDate(Date date1, Date date2) throws Exception { long cha = date2.getTime() - date1.getTime(); if (cha < 0) { return false; } double result = cha * 1.0 / (1000 * 60 * 60); if (result <= 48) { return true; } else { return false; } } // 增加或減少天數(shù) private Date addDay(Date date, int num) { Calendar startDT = Calendar.getInstance(); startDT.setTime(date); startDT.add(Calendar.DAY_OF_MONTH, num); return startDT.getTime(); }

以上就是Java 定時(shí)器的使用示例的詳細(xì)內(nèi)容,更多關(guān)于Java 定時(shí)器的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 99亚洲精品 | 伊人狼人综合 | 成人毛片18女人毛片免费视频未 | 日产国产欧美韩国在线 | 亚洲特黄大黄一级毛片 | 免费看日日麻批免费视频播放 | 中文线码中文高清播放中 | 黄色录像在线免费观看 | 亚洲黄色中文字幕 | 亚洲影视一区 | 国内一级片 | 婷婷天堂 | 色婷婷综合网 | 国产自愉怕一区二区三区 | 亚洲视频 在线观看 | 久久亚洲伊人成综合人影院 | 中国帅小伙gaysextubevideo | 黄色免费看看 | 手机国产精品一区二区 | 国产精品亚洲精品日韩己满十八小 | 久久精品韩国日本国产 | 日韩在线www | 亚洲精品一区二区三区四区 | 黑人巨大进入美女深处的视频 | 十六一下岁女子毛片免费 | 成人性色生活片全黄 | 日韩精品在线视频 | 国产精品久久久久影院色老大 | 国产成人不卡亚洲精品91 | 大学生一级一片第一次欧美 | 欧美毛片a级毛片免费观 | 人人香蕉 | 亚洲六月丁香六月婷婷蜜芽 | 欧美日一区二区三区 | 夜色网| 亚洲精品九色在线网站 | 亚洲制服丝袜在线播放 | 国产又色又爽免费视频 | 最新亚洲一区二区三区四区 | 好爽~好硬~好紧~蜜芽 | 亚洲国产第一区二区香蕉日日 |