Ich habe in letzter Zeit viele E -Mails erhalten, die alle wissen möchten, wie Spring Boot Quartz integriert, um mehrere Zeitaufgaben zu implementieren. Da ich in der Produktion nicht mehrere Timing -Aufgaben verwende, werde ich mir eine Idee zur Implementierung geben.
1. Erstellen Sie zwei neue Zeitaufgaben wie folgt:
öffentliche Klasse Scheduledjob implementiert Job {@Override public void execute (JobExecutionContext -Kontext) löst JobExecutionException aus {System.out.println ("Zeitplan Job1 wird ausgeführt. }} public class pleduledjob2 implementiert Job {@Override public void execute (JobExecutionContext -Kontext) löst JobExecutionException aus {System.out.println ("Zeitplan Job2 wird ausgeführt ………………………………………); }}2. Konfigurieren Sie die oben genannten zwei Aufgaben
@Component Public Class SchedulerAlljob {@autowired Private SchedulerFactoryBean SchedulerFactoryBean; /** Hier können Sie Datenbankvorgänge injizieren, um alle Aufgabenkonfigurationen abzufragen.*// *** Diese Methode wird verwendet, um alle zeitgesteuerten Aufgaben zu starten / ** * */ planjob1 (Scheduler); planjob2 (Scheduler); }/** * configure Job1 * Die Aufgaben hier können in Eigenschaften oder in der Datenbank konfiguriert und platziert werden. Wenn Sie zu diesem Zeitpunkt dynamische Zeitaufgaben ausführen müssen @Throws SchedulerException * / private void planjob1 (Scheduler Scheduler) löst SchedulerException { / * * Hier können Sie die Datenbank zuerst nach dem Aufgabenamen abfragen. Wenn die Aufgabe in der Datenbank vorhanden ist, aktualisieren Sie die Aufgabenkonfiguration und die Auslöser gemäß den Methoden in der SchedulereFreshDatabase -Klasse * Wenn die Aufgabe zu diesem Zeitpunkt nicht in der Datenbank abfragt wird, befolgen Sie die folgenden Schritte, um eine neue Aufgabe zu erstellen, die Initialisierungsparameter zu erstellen. .WithIdentity ("Job1", "Gruppe1"). Build (); // CronchSchedulebuilder planbuilder ausführen = cronchSchedulebuilder.conSchedule ("0/5 * * *?"); Crontrigger crontrigger = triggerBuilder.newtrigger (). Mit Identität ("Trigger1", "Gruppe1"). -WithSchedule (planbuilder) .build (); Scheduler.Schedulejob (JobDetail, Crontrigger); } / ** * Job konfigurieren * @param Scheduler * @Throws SchedulerException * / private void planjob2 (Scheduler Scheduler) löscht SchedulerException {JobDetail JobDetail = Jobbuilder.newjob (pleduledjob2.class). CronSchedulebuilder planbuilder = cronSchedulebuilder.conSchedule ("0/10 * * * * *?"); // Crontrigger führt alle 10 Sekunden Crontrigger = TriggerBuilder.Newtrigger () mit Identität ("Trigger2", "Group1") .withSchedule (planbuilder) .build () aus; Scheduler.Schedulejob (JobDetail, Crontrigger); }}3. Beginnen Sie zwei Aufgaben
@Configuration @enablesScheduling @Component Public Class SchedulerListener {@autowired Public SchedulerAlljob MyScheduler; /** * Führen Sie diese Methode beim Start aus oder verwenden Sie ApplicationListener, um die Methode zum Start auszuführen. {myScheduler.Schedulejobs (); } @Bean public SchedulerFactoryBean SchedulerFactoryBean () {SchedulerFactoryBean SchedulerFactoryBean = New SchedulerFactoryBean (); return planerFactoryBean; }}4. Die Testergebnisse sind wie folgt
Zeitplan Job1 wird ausgeführt. job1 is running………………………………………………… schedule job1 is running………………………………………………………………… schedule job1 is läuft……………………………………………………………………………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………………………………………………………………………………
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.