Heim >Java >javaLernprogramm >Implementierungscode für geplante Java-Webaufgaben

Implementierungscode für geplante Java-Webaufgaben

不言
不言Original
2018-09-21 10:58:282401Durchsuche

Der Inhalt dieses Artikels befasst sich mit dem Implementierungscode für geplante Java-Aufgaben. Ich hoffe, dass er für Freunde hilfreich ist.

Schreiben Sie vorne:

 In neueren Projekten ist es notwendig, die Datenbanktabelle täglich regelmäßig abzufragen und die zugehörigen Daten zu vervollständigen Datenaktualisierungsvorgang. Das erste, was mir in den Sinn kommt, ist die Timer-Klasse. Ich erinnere mich, dass ich bei der ersten Wartung des alten Systems eine Schnittstelle geöffnet habe, die auch Timing-Operationen beinhaltete. Im Folgenden wird die allgemeine Verwendung protokolliert, sodass sie bei späterer Arbeit leicht wiedergefunden werden kann.

 Da es im Web verwendet wird, sollte diese geplante Aufgabe hier ausgeführt werden, und sie wird ausgeführt, wenn sie initialisiert wird Stellen Sie dann im Timer-Programm die entsprechende Ausführungszeit und die auszuführende Aufgabenklasse entsprechend Ihren eigenen Anforderungen ein.

 1. Schreiben Sie zuerst die Task-Klasse, die wir ausführen müssen

public class DailyReportTimerTask extends TimerTask{
    public static Logger logger=Logger.getLogger(DailyReportTimerTask.class);
    public void run() {
        System.out.println("----开始执行任务--------------");
    }
}

Die Task-Klasse muss TimerTask erben, bitte beachten Sie dies

 2. Schreiben Sie eine Klasse, um den Aufgabentyp, die Zeit und die Häufigkeit des Programmstarts zu verwalten

public class TimeManager {
    public static Logger logger=Logger.getLogger(TimeManager.class);
    //时间间隔
    private static final long PERIOD_DAY = 24 * 60 * 60 * 1000;  //24小时执行一次
    public TimeManager() {
      
       Calendar calendar = Calendar.getInstance();  
       /*** 定制每日23:10执行方法 ***/
       calendar.set(Calendar.HOUR_OF_DAY, 23);
       calendar.set(Calendar.MINUTE, 10);
       calendar.set(Calendar.SECOND, 0);
       Date date=calendar.getTime();
       System.out.println(date);

       //如果第一次执行定时任务的时间 小于 当前的时间
       //此时要在 第一次执行定时任务的时间 加一天,以便此任务在下个时间点执行。如果不加一天,任务会立即执行。循环执行的周期则以当前时间为准
       if (date.before(new Date())) {
           date = this.addDay(date, 1);
           System.out.println(date);
       }
      
       Timer timer = new Timer();
    DailyReportTimerTask task = new DailyReportTimerTask();

       //安排指定的任务在指定的时间开始进行重复的固定延迟执行。
       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();
      }
}

 3 initialisiert werden, nur Um dieses geplante Programm auszuführen, können Sie den Listener

public class DailyReportListener implements ServletContextListener{
    public void contextDestroyed(ServletContextEvent arg0) {
    
    }
    public void contextInitialized(ServletContextEvent arg0) {
        new TimeManager();
    }

}

 4 verwenden. Der letzte Schritt besteht darin, den entsprechenden Listener

858da6a3d73ccf19b1e16adda72c27cf
    eae7f28921fa176b20e23abb843be090
        5948543310f2c9ae6eabc90d07fdac18edu.hue.erp.util.timer.DailyReportListenera5cb73ed00d90e1dafbf6168c4a676c2
    f26bc28f07f75d604e1d9c5e7de10123

Das Entwickeln eines Programms zum Abschließen geplanter Aufgaben im Web sieht ungefähr so ​​aus. Für die spezifische Ausführung des Geschäftsprogramms müssen Sie es entsprechend Ihrem eigenen Projekt abschließen.

Das obige ist der detaillierte Inhalt vonImplementierungscode für geplante Java-Webaufgaben. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn