国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Servlet調用Timer完成定時任務

2019-11-08 01:38:01
字體:
來源:轉載
供稿:網友

項目要求:設計一個后臺線程,定時清理數據。

使用類:TimerTask

前期學習

java 8 API

public abstract class TimerTaskextends Objectimplements RunnableTimerTask 是一個實現了Runnable接口的抽象類,是被Timer類調度使用的抽象類。

Timer類使用TimerTask有如下方法:

項目代碼:

1、設計TimerTask類,在web啟動時調用。

import java.util.Timer;import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener;public class TimerTask implements ServletContextListener{			PRivate Timer timer;  //定義定時器Timer	public static final long DELAY = 0;	//定義延遲時間 long=0	public static final long PERIOD_MIN = 60000;//每分鐘的毫秒數	public static final long PERIOD_DAY = 2*60*PERIOD_MIN;//設定運作周期為每2小時一次,即2*60*每分鐘的毫秒數		public void contextInitialized(ServletContextEvent event){ //在web啟動時初始化此任務						timer=new Timer("數據清理",true);				timer.schedule(new TimerTaskRun(), DELAY, PERIOD_DAY);				}	public void contextDestroyed(ServletContextEvent event){		timer.cancel();// web結束時銷毀定時器!	}	}

2、實現TimerTaskRun類,覆寫run方法。

import com.sun.istack.internal.logging.Logger;import com.test.database.DBManager;public class TimerTaskRun extends java.util.TimerTask {			private static Logger logger = Logger.getLogger(TimerTaskRun.class); 	private static boolean isRunning = false; 	 	 public void run(){		 		 if(!isRunning){			 isRunning=true;			 logger.info("TimerTaskStart!");//開始執行任務		 			 //執行代碼。。。。。。。。。			 			 			 logger.info("TimerTaskEnd.");//任務完成			 isRunning=false;		 }else{			 logger.info("TimerTaskWait...");//上次任務還未結束			 		 }		 	 }}

遇到的問題:

1、使用timer的schedule的時候,一直報錯,說類型不匹配。

我的代碼是繼承了TimerTask抽象類的,而且也覆寫了run,怎么會錯呢.....

后來查啊查,看到有繼承的時候是這樣寫的:

然后發現....不報錯了.....后來想了想,額,沒導java.util包

2、getLog方法一直報錯:the method getLog(String) is undefined....

開始用的是這個代碼:↓

private  Log log = LogFactory.getLog(this.getClass().getName()); 

然后第一次查錯的時候,是覺得沒有導包,這個包tomcat里面沒有,我從網上下載了一個commons-logging-1.0.4.jar,網上說log就是用這個網,logger是用什么log4的jar包。

然后重點來了,導完還是錯。

我就隨意的把log寫成了logger,居然自動補全了后面的函數....然后就順著eclipse的補全函數重寫了一遍.....

說好的log對應commons-logging-1.0.4.jar呢......╭(╯^╰)╮

3、log.debug()方法報錯。

按理說,log.debug(); log.info(); log.warn(); log.error("); 這四個都是可以的。

但是,就是不補全debug方法。科科。 所以只能用info了。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 米林县| 多伦县| 雅安市| 富民县| 将乐县| 黄骅市| 台前县| 东源县| 贵定县| 达拉特旗| 嘉禾县| 淅川县| 清远市| 翼城县| 梅河口市| 十堰市| 中西区| 五指山市| 卫辉市| 昌吉市| 龙海市| 岑巩县| 辽阳市| 监利县| 安陆市| 称多县| 威海市| 长泰县| 砀山县| 仙游县| 广昌县| 青岛市| 黎川县| 海门市| 宁海县| 临沭县| 元谋县| 新乡县| 石河子市| 靖边县| 潮州市|