Cet article présente le Web Java Web pour exécuter des tâches régulièrement chaque jour et les partager avec vous. Les détails sont les suivants:
premier pas:
package com.eh.util; import java.util.calendar; import java.util.date; import java.util.timer; / ** * java timed tasks, exécuter les tâches régulièrement tous les jours * @Author wlS * * / public classe timinermanager {// temps intervalle privée finale finale de longue période_day = 24 * 60 * 60 * 1000; public TimerManager () {Calendar Calendar = Calendar.getInstance (); / *** Personnalisez la méthode d'exécution quotidienne 2:00 *** / calendar.set (calendar.hour_of_day, 16); calendar.set (calendar.minute, 10); calendar.set (calendar.second, 0); Date de date = calendar.getTime (); // l'heure de la première fois l'exécution de la tâche de synchronisation System.out.println (date); System.out.println ("Avant la comparaison de la méthode:" + date.before (new Date ())); // Si le moment de l'exécution de la tâche de synchronisation pour la première fois est inférieur à l'heure actuelle // à l'heure actuelle, ajoutez un jour à la première fois l'exécution de la tâche de synchronisation afin que cette tâche puisse être exécutée au prochain point de temps. S'il n'y a pas de jour supplémentaire, la tâche sera exécutée immédiatement. Le cycle de l'exécution de la boucle est basé sur l'heure actuelle if (date.before (new Date ())) {date = this.addday (date, 1); System.out.println (date); } TIMER TIMER = NOUVEAU TIMER (); NfdflightDatatimerTask task = new nfdflightDatatimerTask (); // Planifiez la tâche spécifiée pour démarrer l'exécution de retard fixe répété à l'heure spécifiée. timer.schedule (tâche, date, période_day); } // augmenter ou diminuer le nombre de jours Date publique Addday (date de date, int num) {calendar startdt = calendar.getInstance (); startdt.setTime (date); startdt.add (calendar.day_of_month, num); return startdt.gettime (); }}Étape 2:
package com.eh.util; import java.text.simpledateFormat; import java.util.calendar; import java.util.timertask; / ** * Dans la classe TimerManager, tout le monde doit faire attention à la question du temps. Si vous vous êtes mis à effectuer des tâches à 2 heures du matin, mais si vous avez publié le programme après 2 heures ou redémarré le service, la tâche sera exécutée immédiatement, plutôt que d'attendre jusqu'à 2 heures le lendemain. Afin d'éviter cette situation, nous ne pouvons juger que que si l'heure de libération ou de redémarrage du service est plus tard que le moment de l'exécution de la tâche, ajoutez un jour sur cette base. * @author wls * * / public class nfdflightDatatiMertask étend Timertask {private static SimpledateFormat formatter = new SimpledateFormat ("yyyy-mm-dd hh: mm: ss"); @Override public void run () {try {// Écrivez le contenu que vous souhaitez exécuter ici System.out.println ("Execution Current Time" + Format (calendar.getInstance (). GetTime ())); } catch (Exception e) { System.out.println("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Étape 3:
package com.eh.util; import javax.servlet.servletContextevent; import javax.servlet.servletContextListener; public class nfdflightDatataskListener implémente ServletContextListener {public void contextintialialized (servletContexTevent SCCE) {new TimerManager (); } public void contextDestRoyed (ServletContexTevent SCCE) {// TODO Méthode générée automatiquement Stub}}Étape 4: Configurez le fichier web.xml
<! - NFDFLIGLYDATATASKListener Écouteur -> <ouvoiner> <écouteur-classe> com.eh.util.nfdflightdatataskListener </ auteur-class> </ écouteur>
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.