Introduction
Dans ce projet, vous allez apprendre à utiliser le framework Quartz pour planifier et exécuter un simple travail qui rappelle à l'utilisateur de se réveiller, de se brosser les dents et de se laver la figure.
🎯 Tâches
Dans ce projet, vous allez apprendre :
- Comment implémenter l'interface
Jobdans la classeRemindJobpour définir la tâche qui doit être exécutée - Comment implémenter une classe
RemindSchedulerpour planifier et exécuter leRemindJobà l'aide du planificateur Quartz - Comment écrire une fonction de test pour vérifier la fonctionnalité de planification de la classe
RemindScheduler
🏆 Réalisations
Après avoir terminé ce projet, vous serez capable de :
- Utiliser le framework Quartz pour planifier et exécuter des travaux
- Créer et configurer des instances
JobDetailetTriggerpour un travail - Démarrer et arrêter le planificateur Quartz
- Écrire des fonctions de test pour vérifier la fonctionnalité de votre application
Implémentez la classe RemindJob
Dans cette étape, vous allez apprendre à implémenter la classe RemindJob qui implémente l'interface Job du framework Quartz.
Ouvrez le fichier
RemindJob.javasitué dans le répertoire/home/labex/project/QuartzRemind/src/main/java/org/labex.Implémentez la méthode
execute()de l'interfaceorg.quartz.Job. Cette méthode sera appelée par le planificateur Quartz lorsque le travail est exécuté.
@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());
}
La méthode execute() doit afficher le message de rappel "Wake up! Brush your teeth and wash your face!" et l'heure système actuelle.
Implémentez la classe RemindScheduler
Dans cette étape, vous allez apprendre à implémenter la classe RemindScheduler qui planifie et exécute le RemindJob.
Ouvrez le fichier
RemindScheduler.javasitué dans le répertoire/home/labex/project/QuartzRemind/src/main/java/org/labex.Implémentez la méthode
getJobDetail()qui crée et renvoie une instanceorg.quartz.JobDetailpour leRemindJob.
public static JobDetail getJobDetail() {
return JobBuilder.newJob(RemindJob.class)
.withIdentity("reminderJob", "reminderGroup")
.build();
}
- Implémentez la méthode
getTrigger()qui crée et renvoie une instanceorg.quartz.Triggerpour leRemindJob. Le déclencheur répétera le travail toutes les 2 secondes, 3 fois.
public static Trigger getTrigger() {
return TriggerBuilder.newTrigger()
.withIdentity("reminderTrigger", "reminderGroup")
.startNow()
.withSchedule(SimpleScheduleBuilder.simpleSchedule()
.withIntervalInSeconds(2)
.withRepeatCount(2))
.build();
}
- Implémentez la méthode
doScheduler()qui planifie et exécute leRemindJobà l'aide de l'instanceorg.quartz.Scheduler.
public void doScheduler() throws SchedulerException, InterruptedException {
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
// Démarrez le planificateur
scheduler.start();
System.out.println("Planification démarrée");
// Planifiez le travail avec le JobDetail et le Trigger définis
scheduler.scheduleJob(getJobDetail(), getTrigger());
// Dormez pendant 10 secondes
Thread.sleep(10000);
// Arrêtez le planificateur
scheduler.shutdown();
System.out.println("Planification terminée");
}
Cette méthode démarre le planificateur, planifie le travail avec les instances JobDetail et Trigger, attend 10 secondes, puis arrête le planificateur.
Écrivez la fonction de test
Dans cette étape, vous allez apprendre à écrire une fonction de test pour vérifier la fonctionnalité de planification de la classe RemindScheduler.
Ouvrez le fichier
TestQuartz.javasitué dans le répertoire/home/labex/project/QuartzRemind/src/test/java/org/labex.Implémentez la méthode
test()qui crée une instance deRemindScheduleret appelle sa méthodedoScheduler().
@Test
public void test() {
try {
new RemindScheduler().doScheduler();
} catch (InterruptedException | SchedulerException e) {
e.printStackTrace();
}
}
Cette méthode de test exécutera la fonctionnalité de planification et vérifiera que le travail est exécuté comme prévu.
Exécutez le test
Pour exécuter le test et vérifier le projet, suivez ces étapes :
Ouvrez un terminal et accédez au répertoire
/home/labex/project/QuartzRemind.Exécutez la commande suivante pour exécuter le test :
mvn test
Vous devriez voir la sortie suivante :
Planification démarrée
Wake up! Brush your teeth and wash your face!
Current system time - Fri Apr 26 06:54:03 CST 2024
Wake up! Brush your teeth and wash your face!
Current system time - Fri Apr 26 06:54:05 CST 2024
Wake up! Brush your teeth and wash your face!
Current system time - Fri Apr 26 06:54:07 CST 2024
Planification terminée
Cette sortie indique que le RemindJob a été exécuté trois fois, comme prévu par la classe RemindScheduler.
Félicitations! Vous avez réussi à terminer le projet en implémentant les classes RemindJob et RemindScheduler, et en écrivant une fonction de test pour vérifier la fonctionnalité de planification.
Résumé
Félicitations! Vous avez terminé ce projet. Vous pouvez pratiquer plus de laboratoires dans LabEx pour améliorer vos compétences.



