设定Timer定时器时每次执行了两次任务,该如何解决
璁惧畾Timer氭氭氭氭氭氭氭氭氭氭氭氭氭氭氭氭氭氭氭瀹瘡?琛屼簡涓ゆ姟,
import java.util.Timer;
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class TimerListener implements ServletContextListener {
private ServletContext context = null;
private Timer timer = null;
public void contextInitialized(ServletContextEvent event) {
timer = new Timer(true);
timer.schedule(new TestTimer(), 0, 1000 * 20);
}
public void contextDestroyed(ServletContextEvent event) {
timer.cancel();
}
}
/*氭氭鎵撳嵃褰撳墠鏃堕/
import java.util.Date;
import java.util.TimerTask;
public class TestTimer extends TimerTask {
public void run() {
System.out.println((new Date()));
}
}
/*web氭氭戝惉/
listener listener-class com.kanba.init.TimerListener /listener-class
/listener
氭氭氭氭氭氭瘡?繃20氭氭氭氭氭氭氭氭氭氭氭氭氭氭氭氭氭挓兘鎵撳嵃涓ゆ潯鏃堕璁板綍,鎵ц氭氭氭′氭氭浜袱鍔?氭氭氭氭氭氭氭氭氭璇峰浣府鎴戠湅嬶紝鍑哄氭氭氭氭氭氭氭氭
------氭氭氭氭瑙,--------------------------------------------------------
氭氭氭氭ヤ鏄痡dk氭氭PI氭氭氭氭氭氭氭 囨。涓璇存槑
public void scheduleAtFixedRate(TimerTask task,
long delay,
long period)
瀹夋囧畾勪鍔氭氭氭氭″氭氭氭氭氭氭氭氭氭氭氭氭氭氭氭氭氭氭氭氭氭氭氭氭氭氭氭氭氭氭氭氭氭氭氭氭囧畾悗寮涜閲瀹氶囨琛屻ヨ繎浼煎瀹鏃
堕撮囧畾懆鏈級涜鍚画鎵氭氭氭氭氭氭氭氭氭氭氭氭氭氭氭氭氭氭氭氭氭氭氭氭氭氭ц氭氭
浣浜屼釜傛暟涓鏄庢氭氭氭氭氭氭氭氭氭氭氭氭氭氭氭氭氭氭氭氭氭氭氭氭氭氭氭氭,,嬪皟紝ュ悗姣20氭氭氭氭氭氭氭氭氭氭氭氭氭氭氭氭氭氭啀璋冪涓墍鍚氨鎵撳嵃浜袱鏉?氭氭,褰浣犲璇ヨ皟竴涓娉細氭氭氭氭氭氭氭氭氭氭氭氭氭
schedule(TimerTask task, long delay)
氭氭氭氭氭氭氭氭氭氭氭瀹夋寚瀹氬悗鎵ц氭氭氭氭氭氭囧畾勪鍔?
------氭氭氭氭瑙,--------------------------------------------------------
氭氭氭氭氭氭 ,,兘鏄蹇樿充簡