可以通過做監(jiān)聽器(在web.xml中配置監(jiān)聽器),之后監(jiān)聽器里面的方法實現(xiàn)TimeTask 類,之后即可實現(xiàn)定時效果,執(zhí)行某個程序。
創(chuàng)新互聯(lián)主營公安網(wǎng)站建設的網(wǎng)絡公司,主營網(wǎng)站建設方案,app軟件開發(fā)公司,公安h5小程序制作搭建,公安網(wǎng)站營銷推廣歡迎公安等地區(qū)企業(yè)咨詢
這是不可能實現(xiàn)的。程序不運行,你那定時定在那,有什么去識別。所以好好寫程序,不要亂想。
讓程序一直執(zhí)行,但是在執(zhí)行任務的時候通過時間段來控制。
有多種思路可以實現(xiàn)。最直接最簡單就是用:java.util.Timer 類的 scheduleAtFixedRate(TimerTask task, Date firstTime, long period) 方法。第一個參數(shù)執(zhí)行的任務,這個你應該知道了。
最快的,socket還要用占系統(tǒng)的端口,其實很簡單,java程序啟動是,先產(chǎn)生一個.lock的文件,并對此文件加鎖,另一個就無法獲得鎖,聽上去很復雜,其實實現(xiàn)很簡單。
MyJob02 //首先我們需要定義一個任務類,比如為MyJob02 ,//該類需要繼承Job類,然后添加execute(JobExecutionContext context)方法,在 //這個方法中就是我們具體的任務執(zhí)行的地方。
這個可以稍微轉(zhuǎn)換一下思路,只要獲取一下目標時間,再減去當前時間,獲取間隔T 然后再調(diào)用 Timer中的schedule 隔T時間運行,一切搞定。
延時執(zhí)行 首先,我們定義一個類,給它取個名字叫TimeTask,我們的定時任務,就在這個類的main函數(shù)里執(zhí)行。
無非就是時間匹配而已,設置兩個線程,一個用于時間匹配,一個用于執(zhí)行功能。除了定時器,還可以使用concurrent包的ScheduledThreadPoolExecutor,delay設為現(xiàn)在到12點的時間,duration設為24小時。
延時執(zhí)行 首先,我們定義一個類,給它取個名字叫TimeTask,我們的定時任務,就在這個類的main函數(shù)里執(zhí)行。
一般我們使用spring定時器的時候都是配置的固定時間在spring配置文件中,如果我們有一個時間設置頁面,通過這個頁面設置定時器的執(zhí)行時間,就可以達到動態(tài)執(zhí)行的效果。
timer.schedule(task, firstTime, period)指定firstTime為21:00:00,period為一天的毫秒數(shù)24*3600*1000就成了。或者可以自己寫個線程,放個while循環(huán),每分鐘檢查一次,如果到時間了就執(zhí)行任務,如果沒到就sleep一分鐘。