欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java Timer 定時每天凌晨1點執(zhí)行任務(wù)

 更新時間:2019年09月18日 09:49:16   作者:BUG胡漢三  
這篇文章主要介紹了java Timer 定時每天凌晨1點執(zhí)行任務(wù)的代碼,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下

下面給大家介紹java Timer 定時每天凌晨1點執(zhí)行任務(wù),具體代碼如下所示:

import java.util.TimerTask;
/**
 * 執(zhí)行內(nèi)容
 * @author admin_Hzw
 *
 */
public class Task extends TimerTask {
 public void run() {
 System.out.println("我有一頭小毛驢!"); 
 }
}
import java.util.Calendar;
import java.util.Date;
import java.util.Timer;
/**
 * 任務(wù)管理
 * @author admin_Hzw
 *
 */
public class TimerManager {
 /**
 * @param args
 */
 public static void main(String[] args) {
 new TimerManager(); 
 }
 //時間間隔(一天)
 private static final long PERIOD_DAY = 24 * 60 * 60 * 1000;
 public TimerManager() {
 Calendar calendar = Calendar.getInstance();
 calendar.set(Calendar.HOUR_OF_DAY, 1); //凌晨1點
 calendar.set(Calendar.MINUTE, 0);
 calendar.set(Calendar.SECOND, 0);
 Date date=calendar.getTime(); //第一次執(zhí)行定時任務(wù)的時間
 //如果第一次執(zhí)行定時任務(wù)的時間 小于當前的時間
 //此時要在 第一次執(zhí)行定時任務(wù)的時間加一天,以便此任務(wù)在下個時間點執(zhí)行。如果不加一天,任務(wù)會立即執(zhí)行。
 if (date.before(new Date())) {
  date = this.addDay(date, 1);
 }
 Timer timer = new Timer();
 Task task = new Task();
 //安排指定的任務(wù)在指定的時間開始進行重復(fù)的固定延遲執(zhí)行。
 timer.schedule(task,date,PERIOD_DAY); 
 }
 // 增加或減少天數(shù)
 public Date addDay(Date date, int num) {
 Calendar startDT = Calendar.getInstance();
 startDT.setTime(date);
 startDT.add(Calendar.DAY_OF_MONTH, num);
 return startDT.getTime();
 }
}

知識點擴展:java中實現(xiàn)定時任務(wù)每天規(guī)定時間執(zhí)行任務(wù)一次

第一步

package com.eh.util;
import java.util.Calendar;
import java.util.Date;
import java.util.Timer;
/**
 * java定時任務(wù),每天定時執(zhí)行任務(wù)
 * @author wls
 *
 */
public class TimerManager {
  //時間間隔
   private static final long PERIOD_DAY = 24 * 60 * 60 * 1000;
   public TimerManager() {
     Calendar calendar = Calendar.getInstance(); 
     /*** 定制每日2:00執(zhí)行方法 ***/
     calendar.set(Calendar.HOUR_OF_DAY, 16);
     calendar.set(Calendar.MINUTE, 10);
     calendar.set(Calendar.SECOND, 0);
     Date date=calendar.getTime(); //第一次執(zhí)行定時任務(wù)的時間
     System.out.println(date);
     System.out.println("before 方法比較:"+date.before(new Date()));
     //如果第一次執(zhí)行定時任務(wù)的時間 小于 當前的時間
     //此時要在 第一次執(zhí)行定時任務(wù)的時間 加一天,以便此任務(wù)在下個時間點執(zhí)行。如果不加一天,任務(wù)會立即執(zhí)行。循環(huán)執(zhí)行的周期則以當前時間為準
     if (date.before(new Date())) {
       date = this.addDay(date, 1);
       System.out.println(date);
     }
     Timer timer = new Timer();
     NFDFlightDataTimerTask task = new NFDFlightDataTimerTask();
     //安排指定的任務(wù)在指定的時間開始進行重復(fù)的固定延遲執(zhí)行。
     timer.schedule(task,date,PERIOD_DAY);
     }
     // 增加或減少天數(shù)
     public Date addDay(Date date, int num) {
     Calendar startDT = Calendar.getInstance();
     startDT.setTime(date);
     startDT.add(Calendar.DAY_OF_MONTH, num);
     return startDT.getTime();
     }
}

第二部

package com.eh.util;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.TimerTask;
/**
 * 在 TimerManager 這個類里面,大家一定要注意 時間點的問題。如果你設(shè)定在凌晨2點執(zhí)行任務(wù)。但你是在2點以后
 *發(fā)布的程序或是重啟過服務(wù),那這樣的情況下,任務(wù)會立即執(zhí)行,而不是等到第二天的凌晨2點執(zhí)行。為了,避免這種情況
 *發(fā)生,只能判斷一下,如果發(fā)布或重啟服務(wù)的時間晚于定時執(zhí)行任務(wù)的時間,就在此基礎(chǔ)上加一天。
 * @author wls
 *
 */
public class NFDFlightDataTimerTask extends TimerTask {
  private static SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  @Override
  public void run() {
    try {
       //在這里寫你要執(zhí)行的內(nèi)容
      System.out.println("執(zhí)行當前時間"+formatter.format(Calendar.getInstance().getTime()));
    } catch (Exception e) {
      System.out.println("-------------解析信息發(fā)生異常--------------");
    }
  }
}

第三部

package com.eh.util;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class NFDFlightDataTaskListener implements ServletContextListener {
  public void contextInitialized(ServletContextEvent sce) {
     new TimerManager();
  }
  public void contextDestroyed(ServletContextEvent sce) {
    // TODO Auto-generated method stub
  }
}

第四步:配置web.xml文件

<!--NFDFlightDataTaskListener 監(jiān)聽器-->
<listener>
  <listener-class>com.eh.util.NFDFlightDataTaskListener</listener-class>
</listener>

總結(jié)

以上所述是小編給大家介紹的java Timer 定時每天凌晨1點執(zhí)行任務(wù),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

相關(guān)文章

  • 基于Integer值判斷是否相等的問題

    基于Integer值判斷是否相等的問題

    這篇文章主要介紹了基于Integer值判斷是否相等的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • Spring Security6 最新版配置及實現(xiàn)動態(tài)權(quán)限管理

    Spring Security6 最新版配置及實現(xiàn)動態(tài)權(quán)限管理

    Spring Security 在最近幾個版本中配置的寫法都有一些變化,很多常見的方法都廢棄了,并且將在未來的 Spring Security7 中移除,因此又補充了一些新的內(nèi)容,重新發(fā)一下,供各位使用 Spring Security 的小伙伴們參考,需要的朋友可以參考下
    2024-03-03
  • Java中基于Nacos實現(xiàn)Sentinel規(guī)則持久化詳解

    Java中基于Nacos實現(xiàn)Sentinel規(guī)則持久化詳解

    這篇文章主要介紹了Java中基于Nacos實現(xiàn)Sentinel規(guī)則持久化詳解,Sentinel Dashboard中添加的規(guī)則數(shù)據(jù)存儲在內(nèi)存,微服務(wù)停掉規(guī)則數(shù)據(jù)就消失,在?產(chǎn)環(huán)境下不合適,我們可以將Sentinel規(guī)則數(shù)據(jù)持久化到Nacos配置中?,讓微服務(wù)從Nacos獲取規(guī)則數(shù)據(jù),需要的朋友可以參考下
    2023-09-09
  • Java8的default和static關(guān)鍵字的使用講解

    Java8的default和static關(guān)鍵字的使用講解

    今天小編就為大家分享一篇關(guān)于Java8的default和static關(guān)鍵字的使用講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • springboot 文件上傳大小配置的方法

    springboot 文件上傳大小配置的方法

    本篇文章主要介紹了springboot 文件上傳大小配置的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • feign GET請求不支持對象傳參的坑及解決

    feign GET請求不支持對象傳參的坑及解決

    這篇文章主要介紹了feign GET請求不支持對象傳參的坑及解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • executor包執(zhí)行器功能

    executor包執(zhí)行器功能

    這篇文章主要介紹了executor包執(zhí)行器功能,executor包中的各個子包提供的功能,最終這些功能都由Executor接口及其實現(xiàn)類共同對外提供服務(wù)。下文介紹該執(zhí)行功能,具有一定的參考價值,需要的朋友可以考一下
    2022-02-02
  • spring cloud如何集成nacos配置中心

    spring cloud如何集成nacos配置中心

    這篇文章主要介紹了spring cloud如何集成nacos配置中心操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • java中object類實例分析

    java中object類實例分析

    這篇文章主要介紹了java中object類實例分析,具有一定借鑒價值,需要的朋友可以參考下。
    2017-12-12
  • JAVA中DIFF算法實現(xiàn)

    JAVA中DIFF算法實現(xiàn)

    本文主要介紹了JAVA中DIFF算法實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-07-07

最新評論