Spring監(jiān)聽器及定時(shí)任務(wù)實(shí)現(xiàn)方法詳解
背景:在原SSM項(xiàng)目中,擬定在每晚的23:59:59執(zhí)行一個批處理任務(wù)。
設(shè)計(jì)思路:用jdk自帶的定時(shí)器觸發(fā)任務(wù)執(zhí)行,設(shè)置下次執(zhí)行間隔為24小時(shí)。定時(shí)任務(wù)由spring的監(jiān)聽器去啟動。
jdk版本:1.8.0
上代碼
web.xml,添加監(jiān)聽
<listener> <listener-class>com.test.listener.Listener</listener-class> </listener>
添加監(jiān)聽類
import com.test.timmer.TimmerTest; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import java.util.Calendar; import java.util.Timer; public class Listener implements ServletContextListener { public void contextInitialized(ServletContextEvent sce) { System.out.println("啟動監(jiān)聽。。。。。。。。。。。。。。。。。"); //定時(shí)器 Timer timer = new Timer(); //定時(shí)任務(wù)對象 TimmerTest task = new TimmerTest(); //指定到23:59:59 Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.HOUR_OF_DAY,23); calendar.set(Calendar.MINUTE,59); calendar.set(Calendar.SECOND,59); //每天的23:59:59秒執(zhí)行任務(wù),下次執(zhí)行延遲時(shí)長為24小時(shí) timer.schedule(task, calendar.getTime(), 24*60*60*1000); } public void contextDestroyed(ServletContextEvent sce) { } }
添加定時(shí)任務(wù)實(shí)例,jdk的定時(shí)任務(wù)類需繼承 java.util.TimerTask 抽象類
package com.test.timmer; import java.text.SimpleDateFormat; import java.util.Date; import java.util.TimerTask; public class TimmerTest extends TimerTask { public void run() { Date dt = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH時(shí)mm分ss秒"); System.out.println(sdf.format(new Date())+",執(zhí)行定時(shí)任務(wù)"); } }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(53)
下面小編就為大家?guī)硪黄狫ava基礎(chǔ)的幾道練習(xí)題(分享)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,希望可以幫到你2021-08-08java中Pulsar?InterruptedException?異常
這篇文章主要為大家介紹了java中Pulsar?InterruptedException?異常分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02Java統(tǒng)計(jì)字符串中字符出現(xiàn)次數(shù)的方法示例
這篇文章主要介紹了Java統(tǒng)計(jì)字符串中字符出現(xiàn)次數(shù)的方法,涉及Java針對字符串的遍歷、查找、計(jì)算等相關(guān)操作技巧,需要的朋友可以參考下2017-12-12springmvc—handlermapping三種映射方式
這篇文章主要介紹了springmvc—handlermapping三種映射方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09詳解在spring boot中配置多個DispatcherServlet
本篇文章主要介紹了詳解在spring boot中配置多個DispatcherServlet,具有一定的參考價(jià)值,有興趣的可以了解一下。2017-03-03Spring boot項(xiàng)目使用thymeleaf模板過程詳解
這篇文章主要介紹了Spring boot項(xiàng)目使用thymeleaf模板過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07