Recentemente, recebi muitos e -mails, todos os quais querem saber como a Spring Boot integra o Quartz para implementar várias tarefas de tempo. Como não uso várias tarefas de tempo na produção, me darei uma idéia para implementação.
1. Crie duas novas tarefas de tempo, como segue:
classe pública ScheduledJob implementa o trabalho {@Override public void Execute (contexto JobExecutionContext) lança JobExecutionException {System.out.println ("Schedure Job1 está em execução ……………………………………………………………………………… }} classe pública ScheduledJob2 implementa o trabalho {@Override public void Execute (JobExecutionContext Context) lança JobExecutionException {System.out.println ("Anexo Job2 está em execução …………………………………………); }}2. Configure as duas tarefas acima
@Component public class SchedulelJob {@aUTowired SchedulerFactoryBean SchedulerFactoryBean; /** Aqui você pode injetar operações de banco de dados para consultar todas as configurações de tarefas*// *** Este método é usado para iniciar todas as tarefas cronometradas* @throws schedulerexception*/ public void SchedageJobs () lança ScheduleRexception {Scheduler Scheduler = SchedulerFactoryBean.getScheduler (); / ** * */ ScheduleJob1 (Scheduler); ScheduleJob2 (Scheduler); } /** * Configure Job1 * The tasks here can be configured and placed in properties or in the database* If you need to do dynamic timing tasks at this time, please refer to: http://blog.csdn.net/liuchuanhong1/article/details/60873295 * ScheduleRefreshDatabase class in the blog* @param scheduler * @THOWS ScheduleRexception * / private void ScheduleJob1 (Scheduler Scheduler) lança ScheduleReRexception { / * * aqui você pode consultar o banco de dados primeiro pelo nome da tarefa. Se a tarefa existir no banco de dados, atualize a configuração e acionadores de tarefas de acordo com os métodos na classe ScheduleReRefreshDatabase * Se a tarefa não for consultada no banco de dados no momento, siga as etapas abaixo para criar uma nova tarefa, configurar os parâmetros de inicialização e armazenar a configuração no dados */ JobDetail, .WithIdentity ("Job1", "Group1"). Build (); // execute cronschedulebuilder schedulebuilder = cronschedulebuilder.cronschedule ("0/5 * * *?"); CRONTRIGGER CRONTRIGGER = triggerbuilder.NewTrigger (). WithIdentity ("Trigger1", "Group1") .WithSchedule (ScheduleBuilder) .build (); Scheduler.ScheduleJob (JobDetail, Contrigger); } / ** * Configurar trabalho * @Param Scheduler * @Throws ScheduleReRexception * / private void ScheduleJob2 (Scheduler Scheduler) lança ScheduleRexception {JobDetail JobDetail = JobBuilder.Newjob (ScheduledJob2.Class) .WithIdidentity ("Job2" "Group1"). CronscheduleBuilder ScheduleBuilder = CronscheduleBuilder.cronschedule ("0/10 * * * *?"); // CRentrigger executa a cada 10 segundos CRONTRIGGER = triggerbuilder.NewTrigger (). WithIdentity ("Trigger2", "Group1") .WithSchedule (ScheduleBuilder) .build (); Scheduler.ScheduleJob (JobDetail, Contrigger); }}3. Inicie duas tarefas
@Configuration @enablescheduling @component public classe schedulerListener {@aUTowired Public SchedulelJob MyScheduler; /** * Execute esse método na inicialização ou use o ApplicationListener para executar o método na startup * para uso específico, consulte: http://blog.csdn.net/liuchuhong1/article/detils/77568187 * @THOWS SchedulErexception */@Scheduled (@DeTails/77568187 * @Throws SchedulErexception */@SchedulEd ScheduleRexception {myscheduler.schedulejobs (); } @Bean Public SchedulerFactoryBean SchedulerFactoryBean () {SchedulerFactoryBean SchedulerFactoryBean = new SchedulerFactoryBean (); Retorno SchedulerFactoryBean; }}4. Os resultados dos testes são os seguintes
A programação da programação 1 está em execução ……………………………… o cronograma Jó está em execução ………………………………… O cronograma de trabalho 1 está em execução ……………………………………………………………………………………………………………………………………………. JOJ1 está em execução ……………………………………………… A programação Job1 está em execução …………………………………………………………… correndo……………………………………………………………………………………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………. …………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………. ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………….
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.