J'ai reçu de nombreux e-mails récemment, qui veulent tous savoir comment Spring Boot intègre Quartz pour implémenter plusieurs tâches de synchronisation. Comme je n'utilise pas plusieurs tâches de synchronisation en production, je vais me donner une idée de mise en œuvre.
1. Créez deux nouvelles tâches de synchronisation, comme suit:
Classe publique ScheduledJob implémente Job {@Override public void Execute (JobExEcutionContext Context) lève JobExEcutionException {System.out.println ("Schedule Job1 est en cours d'exécution ……………………………………………………… '); }} classe publique ScheduledJob2 implémente Job {@Override public void execute (JobExEcutionContext Context) lève JobExecutionException {System.out.println ("Schedule Job2 est en cours d'exécution …………………………………………… '); }}2. Configurez les deux tâches ci-dessus
@Component Class Public SchedulerAllJob {@Autowired Private SchedulerFactoryBean SchedulerFactoryBean; / * * Ici, vous pouvez injecter des opérations de base de données pour interroger toutes les configurations de tâches * / / ** * Cette méthode est utilisée pour démarrer toutes les tâches chronométrées * @throws schedulerexception * / public void scheduleJobs () lève la planification de scheduler (); / ** * * / scheduleJob1 (planificateur); ScheduleJob2 (planificateur); } / ** * Configurer Job1 * Les tâches ici peuvent être configurées et placées dans des propriétés ou dans la base de données * Si vous devez effectuer des tâches de synchronisation dynamique à l'heure @throws scheduleReXception * / private void schedulejob1 (planificateur de planificateur) lève la planification de rcheduxception {/ * * Vous pouvez d'abord interroger la base de données par le nom de la tâche. Si la tâche existe dans la base de données, mettez à jour la configuration de la tâche et déclenche en fonction des méthodes de la classe ScheduleReFreshDatabase * Si la tâche n'est pas interrogé dans la base de données à l'heure .WithIdentity ("Job1", "Group1"). Build (); // Exécuter CRONSCHEDULEBUILDER SALANDEBUILDER = CRONSCHEDULEBUILDER.CRONSCHEDULE ("0/5 * * *?"); CronTrigger CronTrigger = TriggerBuilder.NewTrigger (). Withentity ("Trigger1", "Group1") .WithSchedule (SchedualBuilder) .Build (); Scheduler.ScheduleJob (JobDetail, CronTrigger); } / ** * Configurer le travail * @param scheduler * @throws schedulerexception * / private void schedulejob2 (scheduler scheduler) lève la planification de schedulerexception {jobdetail jobdetail = jobbuilder.newjob (scheduledjob2.class) .WithIdentity (job2 "," groupe1 "). Build (); CRONSCHEDULEBUILDER SALANDEBUILDER = CRONSCHEDULUDEBUILDER.CRONSCHEDULE ("0/10 * * * *?"); // CronTrigger exécute toutes les 10 secondes CronTrigger = TriggerBuilder.Newtrigger (). Withentity ("Trigger2", "Group1") .WithSchedule (SchedualBuilder) .Build (); Scheduler.ScheduleJob (JobDetail, CronTrigger); }}3. Commencez deux tâches
@Configuration @enablesCheDuling @Component Class Public Class SchedulerListener {@Autowired Public SchedulerAllJob MyScheduler; / ** * Exécutez cette méthode au démarrage, ou utilisez ApplicationListener pour exécuter la méthode au démarrage * pour une utilisation spécifique, voir: http://blog.csdn.net/liuchuanhong1/article/details/77568187 * @throws schererexception * / @scheduled (cron = "0 08 18? * *") {myscheduler.scheduleJobs (); } @Bean public schedulerfactoryBean schedulerfactoryBean () {schedulerfactoryBean schedulerfactoryBean = new schedulerfactoryBean (); return SchedulerFactoryBean; }}4. Les résultats des tests sont les suivants
Planification Job1 est en cours d'exécution ………………………………… planifier le travail2 est en cours …………………………………… Planifier le travail 1 est en cours ……………………………… Planification Job1 est en cours …………………………………… JOB1 est en cours d'exécution ………………………………………………… planifier le travail 1 est en cours …………………………………………………………… planifier Job1 en cours d'exécution……………………………………………………………………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………. ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………. ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………….
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.