Einführung
In diesem Projekt lernst du, wie du das Quartz-Framework verwendest, um einen einfachen Job zu planen und auszuführen, der den Benutzer daran erinnert, aufzustehen, die Zähne zu putzen und sich zu waschen.
🎯 Aufgaben
In diesem Projekt wirst du lernen:
- Wie du die
Job-Schnittstelle in derRemindJob-Klasse implementierst, um die Aufgabe zu definieren, die ausgeführt werden muss - Wie du die
RemindScheduler-Klasse implementierst, um denRemindJobmit dem Quartz-Scheduler zu planen und auszuführen - Wie du eine Testfunktion schreibst, um die Planungsfunktionalität der
RemindScheduler-Klasse zu überprüfen
🏆 Errungenschaften
Nach Abschluss dieses Projekts wirst du in der Lage sein:
- Das Quartz-Framework zum Planen und Ausführen von Jobs zu verwenden
JobDetail- undTrigger-Instanzen für einen Job zu erstellen und zu konfigurieren- Den Quartz-Scheduler zu starten und zu beenden
- Testfunktionen zu schreiben, um die Funktionalität deiner Anwendung zu überprüfen
Implementiere die RemindJob-Klasse
In diesem Schritt lernst du, wie du die RemindJob-Klasse implementierst, die die Job-Schnittstelle aus dem Quartz-Framework implementiert.
Öffne die Datei
RemindJob.javaim Verzeichnis/home/labex/project/QuartzRemind/src/main/java/org/labex.Implementiere die
execute()-Methode derorg.quartz.Job-Schnittstelle. Diese Methode wird vom Quartz-Scheduler aufgerufen, wenn der Job ausgeführt wird.
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
System.out.println("Wake up! Brush your teeth and wash your face!");
System.out.println("Current system time - " + new Date());
}
Die execute()-Methode sollte die Erinnerungsmeldung "Wake up! Brush your teeth and wash your face!" und die aktuelle Systemzeit ausgeben.
Implementiere die RemindScheduler-Klasse
In diesem Schritt lernst du, wie du die RemindScheduler-Klasse implementierst, die den RemindJob planen und ausführen.
Öffne die Datei
RemindScheduler.javaim Verzeichnis/home/labex/project/QuartzRemind/src/main/java/org/labex.Implementiere die
getJobDetail()-Methode, die eineorg.quartz.JobDetail-Instanz für denRemindJoberstellt und zurückgibt.
public static JobDetail getJobDetail() {
return JobBuilder.newJob(RemindJob.class)
.withIdentity("reminderJob", "reminderGroup")
.build();
}
- Implementiere die
getTrigger()-Methode, die eineorg.quartz.Trigger-Instanz für denRemindJoberstellt und zurückgibt. Der Trigger wird den Job alle 2 Sekunden 2-mal wiederholen.
public static Trigger getTrigger() {
return TriggerBuilder.newTrigger()
.withIdentity("reminderTrigger", "reminderGroup")
.startNow()
.withSchedule(SimpleScheduleBuilder.simpleSchedule()
.withIntervalInSeconds(2)
.withRepeatCount(2))
.build();
}
- Implementiere die
doScheduler()-Methode, die denRemindJobmit derorg.quartz.Scheduler-Instanz planen und ausführen.
public void doScheduler() throws SchedulerException, InterruptedException {
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
// Starte den Scheduler
scheduler.start();
System.out.println("Planung gestartet");
// Planen Sie den Job mit der definierten JobDetail und Trigger
scheduler.scheduleJob(getJobDetail(), getTrigger());
// Schlafe für 10 Sekunden
Thread.sleep(10000);
// Stoppe den Scheduler
scheduler.shutdown();
System.out.println("Planung abgeschlossen");
}
Diese Methode startet den Scheduler, planen Sie den Job mit den JobDetail- und Trigger-Instanzen, warten Sie 10 Sekunden und stoppen Sie dann den Scheduler.
Schreibe die Testfunktion
In diesem Schritt lernst du, wie du eine Testfunktion schreibst, um die Planungsfunktionalität der RemindScheduler-Klasse zu überprüfen.
Öffne die Datei
TestQuartz.javaim Verzeichnis/home/labex/project/QuartzRemind/src/test/java/org/labex.Implementiere die
test()-Methode, die eine Instanz vonRemindSchedulererstellt und derendoScheduler()-Methode aufruft.
@Test
public void test() {
try {
new RemindScheduler().doScheduler();
} catch (InterruptedException | SchedulerException e) {
e.printStackTrace();
}
}
Diese Testmethode wird die Planungsfunktionalität ausführen und überprüfen, ob der Job wie erwartet ausgeführt wird.
Führe die Tests aus
Um die Tests auszuführen und das Projekt zu überprüfen, folge diesen Schritten:
Öffne ein Terminal und navigiere zum Verzeichnis
/home/labex/project/QuartzRemind.Führe den folgenden Befehl aus, um die Tests auszuführen:
mvn test
Du solltest die folgende Ausgabe sehen:
Planung gestartet
Wake up! Brush your teeth and wash your face!
Aktuelle Systemzeit - Fri Apr 26 06:54:03 CST 2024
Wake up! Brush your teeth and wash your face!
Aktuelle Systemzeit - Fri Apr 26 06:54:05 CST 2024
Wake up! Brush your teeth and wash your face!
Aktuelle Systemzeit - Fri Apr 26 06:54:07 CST 2024
Planung abgeschlossen
Diese Ausgabe zeigt an, dass der RemindJob dreimal wie geplant vom RemindScheduler-Klasse ausgeführt wurde.
Herzlichen Glückwunsch! Du hast das Projekt erfolgreich abgeschlossen, indem du die RemindJob- und RemindScheduler-Klassen implementiert hast und eine Testfunktion geschrieben hast, um die Planungsfunktionalität zu überprüfen.
Zusammenfassung
Herzlichen Glückwunsch! Du hast dieses Projekt abgeschlossen. Du kannst in LabEx weitere Labore absolvieren, um deine Fähigkeiten zu verbessern.



