La programación de tareas se refiere a tareas de realización automáticamente en función de un punto de tiempo determinado, un intervalo de tiempo determinado o un número dado de ejecuciones.
Por ejemplo, queremos que un sistema haga una copia de seguridad del archivo de la base de datos todos los domingos a las 9 p.m., y podemos usar la programación de tareas para implementarlo. Para más conveniencia, necesitamos iniciar automáticamente esta programación después de que se inicia Tomcat.
Aquí está la API TimeTask:
A continuación se muestra la API de la clase de temporizador
En el siguiente ejemplo, se implementan dos funciones:
1. Monitoree el inicio y el cierre del contenedor web de Tomcat
2. Cuando se inicia el contenedor web, el programa de tareas asigna el objeto de la tarea, el tiempo y el período.
Para monitorear los cambios en los contenedores web, primero debe registrar un oyente en Web.xml
<? xml versión = "1.0" encoding = "utf-8"?> <web-app versión = "3.0" xmlns = "http://java.sun.com/xml/ns/javaee" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xsi: schemalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <!-Agregar TimerListener de escucha como una clase personalizada, ver abajo-> <Oyerer> <Oyerer-class> com.util.timerListener </sider-class> </oyente> <pantsip-name> </sipplay-name> <beating-file-list> <welcome-file> index.jsp </ beeding-file> </belle-file-list> </web-app>
El segundo paso es definir un objeto de tarea, el TimeTask básico
paquete com.util; import java.util.timer; import java.util.timerTask;/** * 1. Defina un objeto de tarea * jdk: el objeto de tarea necesita heredar TimerTask * */public class DatabackUp extiende TimeTask {@Override public void run () {// describir el contenido de tarea que el contenido de tarea debe ser ejecutado. uniones y datos al archivo SQL local "); }}Paso 3. Monitoree los cambios en el contenedor web. Cuando se inicie el contenedor web, asigne tiempo y ciclos para la programación de tareas. El siguiente código contiene varios ejemplos.
paquete com.util; import java.util.date; import java.util.timer; import javax.servlet.servletContextEvent; import javax.servlet.servletContextListener; public class TimerListener implementa ServletContextListener {Timer de temporizador estático privado; / *** Escuche Close Web Container*/ @Override public void contextDestroyed (servletContextEvent scce) {System.out.println ("Web Container Close"); Timer.cancel (); } / *** Escuche la inicio del contenedor web* / @Override public void contextInitialized (servletContextEvent scet) {System.out.println ("inicio del contenedor web"); / *** Preparar medidor de temporizador*/ Timer = new Timer (); System.out.println ("El temporizador está en preparación y comienza a asignar tiempo y períodos para la programación de tareas"); // Crear objeto de tarea Databackup Backup = new DatabackUp (); // 1 cronograma (tarea de tiempo de tiempo, tiempo de datos) // Programe la tarea especificada para iniciar la ejecución en la hora especificada // El mes debe reducirse mediante uno //timer.schedule(backup, nueva fecha (115,8,10,9,54,0)); // 2 cronograma (tarea de tiempo de tiempo, fecha en la primera hora, período largo) // cronograma (copia de seguridad, nueva fecha (115,8,10,10,0,0), 2000); // 3schedule (tarea de tiempo de tiempo, retraso largo) // programar (tarea de tiempo de tiempo, retraso largo) // programar (tarea de tiempo de tiempo, retraso largo) // programar (tarea de tiempo de tiempo de tiempo, tarea de retraso largo) // programar (tarea de timertask, retraso largo) // programar (tarea de tiempo de tiempo, retraso largo) // programar (tarea de tiempo de tiempo de tiempo, retraso largo) // tarea de tarea larga, tarea larga)//programación de retraso largo (horario de demora (cronograma de tiempo de tiempo (horario de tiempo de tiempo largo) // programar (tarea de TimeTask, retraso largo) //timer.schedule(backup, 5000); // 4 programar (tarea de TimeTask, retraso largo, período largo) //timer.schedule(backup, 5000, 2000); // 5. Deje una vez una tarea a las 9 am todos los días //timer.schedule(backup, nueva fecha (115,8,11,9,0,0), 24*60*60*1000); // 6. Deje una vez una tarea a las 3 am todos los sábados //timer.schedule(backup, nueva fecha (115,8,12,3,0,0), 7*24*60*60*1000); }} De esta manera, cuando se inicia Tomcat, el objeto de tarea comenzará a ejecutar de acuerdo con su tiempo y ciclo asignados.
Resumen: use el temporizador para implementar la programación de tareas, primero cree un objeto de tarea definido, como la copia de seguridad aquí; Luego instanciar un temporizador, instanciar el objeto de tarea y llamar al método correspondiente de acuerdo con los requisitos para asignar tiempo y período al objeto de tarea. Lo anterior es la implementación de la programación de tareas. En cuanto a cuándo comienza este temporizador, es decir, cuando el temporizador comienza a instancias de instancias, debe determinarse en función de la situación real. Por ejemplo, el código anterior es iniciar el temporizador después de que se inicia el contenedor web.
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.