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

Implementierungscode für geplante Java-Webaufgaben

不言
Freigeben: 2018-09-21 10:58:28
Original
2402 Leute haben es durchsucht

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("----开始执行任务--------------");
    }
}
Nach dem Login kopieren

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();
      }
}
Nach dem Login kopieren

 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();
    }

}
Nach dem Login kopieren

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

<!--DailyReportTaskListener 监听器-->
    <listener>
        <listener-class>edu.hue.erp.util.timer.DailyReportListener</listener-class>
    </listener>
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage