當前位置:編程學習大全網 - 腳本源碼 - java定時器 每天淩晨 固定執行壹個方法

java定時器 每天淩晨 固定執行壹個方法

二、如果是需要Tomcat啟動就能執行,不需要main方法的定時器的話:

web.xml裏面需要這麽配置:

<listener>

<listener-class>

com.InitListener

</listener-class>

</listener>

第壹個類:InitListener

package com.listener;

import java.util.Calendar;

import java.util.Date;

import java.util.Timer;

import javax.servlet.ServletContextEvent;

import javax.servlet.ServletContextListener;

/**

* 系統啟動時的監聽類 初始化系統數據

*

* @author jhoneder

*

*/

public class InitListener implements ServletContextListener {

public void contextDestroyed(ServletContextEvent arg0) {

// TODO Auto-generated method stub

// context銷毀時,銷毀初始化數據

}

public void contextInitialized(ServletContextEvent event) {

// TODO Auto-generated method stub

try {

goTimmer();

} catch (Exception e) {

System.out.println("失敗:" + e.getMessage());

}

}

private void goTimer() {

Timer timmerTask = new Timer();

Calendar calEnviron = Calendar.getInstance();

// 每天的02:00.am開始執行

calEnviron.set(Calendar.HOUR_OF_DAY, 2);

calEnviron.set(Calendar.MINUTE, 00);

// date為制定時間

Date dateSetter = new Date();

dateSetter = calEnviron.getTime();

// nowDate為當前時間

Date nowDateSetter = new Date();

// 所得時間差為,距現在待觸發時間的間隔

long intervalEnviron = dateSetter.getTime() - nowDateSetter.getTime();

if (intervalEnviron < 0) {

calEnviron.add(Calendar.DAY_OF_MONTH, 1);

dateSetter = calEnviron.getTime();

intervalEnviron = dateSetter.getTime() - nowDateSetter.getTime();

}

// 每24小時執行壹次

timmerTask.schedule(new UseTimer(timmerTask), intervalEnviron, 1 * 1000 * 60 * 60 * 24);

}

}

第二個類:

package com.listener;

import java.util.Timer;

import java.util.TimerTask;

/**

* 被調用執行類

*

* @author Administrator

*

*/

public class UseTimer extends TimerTask {

Timer timer = new Timer();

public UseTimer(Timer timer) {

this.timer = timer;

}

/*

* 被調用具體的方法

*/

public void run() {

System.out.println("開始具體執行!");

}

}

不懂得話可以追問!

  • 上一篇:LOL明星召喚師是誰
  • 下一篇:愛的創可貼的角色介紹
  • copyright 2024編程學習大全網