程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 實例講授java准時義務

實例講授java准時義務

編輯:關於JAVA

實例講授java准時義務。本站提示廣大學習愛好者:(實例講授java准時義務)文章只能為提供參考,不一定能成為您想要的結果。以下是實例講授java准時義務正文


明天為年夜家分享的一個經歷就是java的准時義務,就是說在一天的某個時光點履行以下代碼。

public class TimerManager {
 
 //時光距離
 private static final long PERIOD_DAY = 24 * 60 * 60 * 1000;
 
 public TimerManager() {
 Calendar calendar = Calendar.getInstance();
    
 /*** 定制逐日2:00履行辦法 ***/
 
 calendar.set(Calendar.HOUR_OF_DAY, 2);
 calendar.set(Calendar.MINUTE, 0);
 calendar.set(Calendar.SECOND, 0);
  
 Date date=calendar.getTime(); //第一次履行准時義務的時光
  
 //假如第一次履行准時義務的時光 小於 以後的時光
 //此時要在 第一次履行准時義務的時光 加一天,以便此義務鄙人個時光點履行。假如不加一天,義務會立刻履行。
 if (date.before(new Date())) {
   date = this.addDay(date, 1);
 }
  
 Timer timer = new Timer();
  
 NFDFlightDataTimerTask task = new NFDFlightDataTimerTask();
 //支配指定的義務在指定的時光開端停止反復的固定延遲履行。
 timer.schedule(task,date,PERIOD_DAY);
 }
 
 // 增長或削減天數
 public Date addDay(Date date, int num) {
 Calendar startDT = Calendar.getInstance();
 startDT.setTime(date);
 startDT.add(Calendar.DAY_OF_MONTH, num);
 return startDT.getTime();
 }
 
}

在TimerManager 這個類外面,年夜家必定要留意時光點的成績。假如你設定在清晨2點履行義務。但你是在2點今後宣布的法式或是重啟過辦事,那如許的情形下,義務會立刻履行,而不是比及第二天的清晨2點履行。為了,防止這類情形產生,只能斷定一下,假如宣布或重啟辦事的時光晚於准時履行義務的時光,就在此基本上加一天。

public class NFDFlightDataTimerTask extends TimerTask {
 
 private static Logger log = Logger.getLogger(NFDFlightDataTimerTask.class);
 
 @Override
 public void run() {
 try {
  //在這裡寫你要履行的內容
  
 } catch (Exception e) {
  log.info("-------------解析信息產生異常--------------");
 }
 }
}
 
public class NFDFlightDataTaskListener implements ServletContextListener {
 
 public void contextInitialized(ServletContextEvent event) {
 new TimerManager();
 }
 
 public void contextDestroyed(ServletContextEvent event) {
 }
 
}

然後要在web.xml外面設置裝備擺設監聽器

<listener>
 <listener-class>
 com.listener.NFDFlightDataTaskListener
 </listener-class>
</listener>

以上就是本文的全體內容,願望對年夜家的進修有所贊助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved