我們可以使用Timer和TimerTask類在java中實現(xiàn)定時任務(wù),詳細(xì)說明如下御兆哪:
在普蘭店等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站建設(shè)、做網(wǎng)站 網(wǎng)站設(shè)計制作專業(yè)公司,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站制作,成都全網(wǎng)營銷,成都外貿(mào)網(wǎng)站建設(shè)公司,普蘭店網(wǎng)站建設(shè)費用合理。
1、基礎(chǔ)知識
java.util.Timer
一種線程設(shè)施,用于安排以后在后臺線程中執(zhí)行的鎮(zhèn)碼任務(wù)。可安排任務(wù)執(zhí)行一次,或者定期重復(fù)執(zhí)行。此類是線程安全的:多個線程可以共享單個 Timer 對象而無需進(jìn)行外部同步。
java.util.TimerTask
由 Timer 安排為一次執(zhí)行或重復(fù)執(zhí)行的任務(wù)。
2、示例代碼
該示例實現(xiàn)這樣一個功能,在系統(tǒng)運行期間,每30分鐘,系統(tǒng)自動檢查連接池中的可用連接數(shù),并輸出到日志中。
首先創(chuàng)建一個需要定時執(zhí)行的任務(wù)類,這個任務(wù)類需要繼承TimerTask,然后重寫run()方法,run()方法體中的代碼就是定時需要執(zhí)行的操作,在本demo中,就是獲取連接池中當(dāng)前可用連接數(shù),并輸出到日志中,具體實現(xiàn)代碼如下猜逗:
public class TaskAvailableConnectNumber extends TimerTask {
private Logger log = Logger.getLogger(TaskAvailableConnectNumber.class);
private ConnectionPool pool=ConnectionPool.getInstance();
@Override
publicvoid run() {
log.debug("當(dāng)前連接池中可用連接數(shù)"+pool.getAvailableConnectNumber());
}
}
下面定義一個監(jiān)聽器,負(fù)責(zé)在應(yīng)用服務(wù)器啟動時打開定時器,監(jiān)聽器需要實現(xiàn)ServletContextListener接口,并重寫其中的contextInitialized()和contextDestroyed()方法,代碼如下:
public class OnLineListener implements ServletContextListener{
private Logger log = Logger.getLogger(OnLineListener.class);
Timer timer = null;
//在應(yīng)用服務(wù)器啟動時,會執(zhí)行該方法
publicvoid contextInitialized(ServletContextEvent arg0) {
//創(chuàng)建一個定時器,用于安排需要定時執(zhí)行的任務(wù)。
timer = new Timer();
//為定時器安排需要定時執(zhí)行的任務(wù),該任務(wù)就是前面創(chuàng)建的任務(wù)類TaskAvailableConnectNumber,并指定該任務(wù)每30分鐘執(zhí)行一次。
timer.schedule(new TaskAvailableConnectNumber(), 0, 30*60*1000);
log.debug("啟動定時器");
}
//應(yīng)用服務(wù)器關(guān)閉時,會執(zhí)行該方法,完成關(guān)閉定時器的操作。
public void contextDestroyed(ServletContextEvent arg0) {
if(timer!=null){
timer.cancel();//關(guān)閉定時器
log.debug("-----定時器銷毀--------");
}
}
}
監(jiān)聽器要想正常運行,需要在web.xml文件中進(jìn)行配置,配置信息如下:
!-- 監(jiān)聽器配置開始 --
listener
listener-class
cn.sdfi.listen.OnLineListener
/listener-class
/listener
!-- 監(jiān)聽器配置結(jié)束 --
以上步驟完成后,一個簡單的定時器就算開發(fā)完成了。
文章標(biāo)題:java定時處理代碼 java定時函數(shù)
地址分享:http://chinadenli.net/article36/dcioosg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、微信小程序、微信公眾號、企業(yè)建站、品牌網(wǎng)站制作、軟件開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)