Recientemente he recibido muchos correos electrónicos, todos los cuales quieren saber cómo Spring Boot integra cuarzo para implementar múltiples tareas de tiempo. Como no uso múltiples tareas de tiempo en producción, me daré una idea para la implementación.
1. Cree dos nuevas tareas de tiempo, como sigue:
Public Class ProchuledJob implementa el trabajo {@Override public void Ejecute (context de JobExecutionContext) lanza JobExecutionException {System.out.println ("El horario Job1 se está ejecutando ………………………………………………………………); }} La clase pública ProchuledJob2 implementa el trabajo {@Override public void Execute (JobExecutionContext context) lanza JobExecutionException {System.out.println ("El horario Job2 se está ejecutando ……………………………………………………); }}2. Configure las dos tareas anteriores
@Component Public Class SchedulerAllJob {@aUtowired SchedulerFactoryBean SchedulerFactoryBean; /** Aquí puede inyectar operaciones de la base de datos para consultar todas las configuraciones de tareas*// *** Este método se usa para iniciar todas las tareas cronometradas* @throws schedulerException*/ public void ovyemJobs () lanza SchedulerException {Scheduler Scheduler = SchedulerFactoryBean.getScheduler ();; / ** * */ schedlejob1 (planificador); SHECEJOB2 (programador); }/** * Configurar Job1 * Las tareas aquí se pueden configurar y ubicarse en propiedades o en la base de datos * Si necesita realizar tareas de tiempo dinámico en este momento, consulte: http://blog.csdn.net/liuchuanhong1/article/details/60873295 * scapchulerefreshdatabase SchedulerException * / Private void oVekJob1 (Scheduler Scheduler) lanza SchedulerException { / * * Aquí puede consultar la base de datos primero por el nombre de la tarea. Si la tarea existe en la base de datos, actualice la configuración de la tarea y los desencadenantes de acuerdo con los métodos en la clase SchedulerefreshDatabase * Si la tarea no se consulta en la base de datos en este momento, siga los pasos a continuación para crear una nueva tarea, configurar los parámetros de inicialización y almacenar la configuración en la configuración de DataBase */ JobDetailDetail = Jobbuilder. .WithIdentity ("Job1", "Group1"). Build (); // ejecutar cronscheduleBuilder overyBuilder = cronscheduleBuilder.cronsChedule ("0/5 * * *?"); Crontrigger crontrigger = TriggerBuilder.newTrigger (). WithIdentity ("Trigger1", "Group1") .WithSchedule (otletBuilder) .Build (); Scheduler.scheduleJob (JobDetail, Crontrigger); } / ** * Configurar el trabajo * @param Scheduler * @throws SchedulerException * / private void oveleB22 (Scheduler Scheduler) lanza SchedulerException {JobDetail JobDetail = JobBuilder.NewJob (ProchuledJob2.Class) .WithIdentity ("Job2", "Group1"). Build (););); CronscheduleBuilder overyBuilder = cronscheduleBuilder.CronsChedule ("0/10 * * * *?"); // Crontrigger se ejecuta cada 10 segundos crontrigger = TriggerBuilder.newTrigger (). WithIdentity ("Trigger2", "Group1") .WithSchedule (SHECEBUIREDER) .Build (); Scheduler.scheduleJob (JobDetail, Crontrigger); }}3. Comienza dos tareas
@Configuration @enablescheduling @Component public class SchedulerListener {@aUtowired Public SchedulerAllJob MyScheduler; /** * Ejecute este método en Startup, o use ApplicationListener para ejecutar el método en Startup * para un uso específico, consulte: http://blog.csdn.net/liuchuanhong1/article/details/77568187 * @throws programación */@scheduled (CRON = "0 08 18? * *" ") SchedulerException {myscheduler.scheduleJobs (); } @Bean Public SchedulerFactoryBean SchedulerFactoryBean () {SchedulerFactoryBean SchedulerFactoryBean = new SchedulerFactoryBean (); Return SchedulerFactoryBean; }}4. Los resultados de la prueba son los siguientes
Programa de trabajo El trabajo1 se está ejecutando …………………………………… Horario Job2 se está ejecutando ………………………………………… TROVETO JUT1 ……………………………………… ... ¡el horario ……………………………………… FUNCION Job1 se está ejecutando ……………………………………………………… ... ¡Programa Job1 se está ejecutando ……………………………………………………………… ... correr……………………………………………………………………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………
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.