Introducción
En este proyecto, aprenderás a utilizar el marco Quartz para programar y ejecutar un trabajo simple que recuerde al usuario que se levante, se cepille los dientes y se lave la cara.
🎯 Tareas
En este proyecto, aprenderás:
- Cómo implementar la interfaz
Joben la claseRemindJobpara definir la tarea que necesita ser ejecutada - Cómo implementar la clase
RemindSchedulerpara programar y ejecutar elRemindJobutilizando el programador Quartz - Cómo escribir una función de prueba para verificar la funcionalidad de programación de la clase
RemindScheduler
🏆 Logros
Después de completar este proyecto, podrás:
- Utilizar el marco Quartz para programar y ejecutar trabajos
- Crear y configurar instancias de
JobDetailyTriggerpara un trabajo - Iniciar y detener el programador Quartz
- Escribir funciones de prueba para verificar la funcionalidad de tu aplicación
Implementar la clase RemindJob
En este paso, aprenderás a implementar la clase RemindJob que implementa la interfaz Job del marco Quartz.
Abra el archivo
RemindJob.javaubicado en el directorio/home/labex/project/QuartzRemind/src/main/java/org/labex.Implemente el método
execute()de la interfazorg.quartz.Job. Este método será llamado por el programador Quartz cuando se ejecute el trabajo.
@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());
}
El método execute() debe imprimir el mensaje de recordatorio "Wake up! Brush your teeth and wash your face!" y la hora actual del sistema.
Implementar la clase RemindScheduler
En este paso, aprenderás a implementar la clase RemindScheduler que programa y ejecuta el RemindJob.
Abra el archivo
RemindScheduler.javaubicado en el directorio/home/labex/project/QuartzRemind/src/main/java/org/labex.Implemente el método
getJobDetail()que crea y devuelve una instancia deorg.quartz.JobDetailpara elRemindJob.
public static JobDetail getJobDetail() {
return JobBuilder.newJob(RemindJob.class)
.withIdentity("reminderJob", "reminderGroup")
.build();
}
- Implemente el método
getTrigger()que crea y devuelve una instancia deorg.quartz.Triggerpara elRemindJob. El disparador repetirá el trabajo cada 2 segundos, 3 veces.
public static Trigger getTrigger() {
return TriggerBuilder.newTrigger()
.withIdentity("reminderTrigger", "reminderGroup")
.startNow()
.withSchedule(SimpleScheduleBuilder.simpleSchedule()
.withIntervalInSeconds(2)
.withRepeatCount(2))
.build();
}
- Implemente el método
doScheduler()que programa y ejecuta elRemindJobutilizando la instancia deorg.quartz.Scheduler.
public void doScheduler() throws SchedulerException, InterruptedException {
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
// Iniciar el programador
scheduler.start();
System.out.println("Programación iniciada");
// Programar el trabajo con el JobDetail y Trigger definidos
scheduler.scheduleJob(getJobDetail(), getTrigger());
// Dormir durante 10 segundos
Thread.sleep(10000);
// Detener el programador
scheduler.shutdown();
System.out.println("Programación completada");
}
Este método inicia el programador, programa el trabajo con las instancias de JobDetail y Trigger, espera 10 segundos y luego detiene el programador.
Escribir la función de prueba
En este paso, aprenderás a escribir una función de prueba para verificar la funcionalidad de programación de la clase RemindScheduler.
Abra el archivo
TestQuartz.javaubicado en el directorio/home/labex/project/QuartzRemind/src/test/java/org/labex.Implemente el método
test()que crea una instancia deRemindSchedulere invoca su métododoScheduler().
@Test
public void test() {
try {
new RemindScheduler().doScheduler();
} catch (InterruptedException | SchedulerException e) {
e.printStackTrace();
}
}
Este método de prueba ejecutará la funcionalidad de programación y verificará que el trabajo se ejecute como se espera.
Ejecutar la prueba
Para ejecutar la prueba y verificar el proyecto, siga estos pasos:
Abra una terminal y navegue hasta el directorio
/home/labex/project/QuartzRemind.Ejecute el siguiente comando para ejecutar la prueba:
mvn test
Debería ver la siguiente salida:
Scheduling started
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
Scheduling completed
Esta salida indica que el RemindJob se ejecutó tres veces, según lo programado por la clase RemindScheduler.
¡Felicitaciones! Has completado con éxito el proyecto al implementar las clases RemindJob y RemindScheduler, y escribir una función de prueba para verificar la funcionalidad de programación.
Resumen
¡Felicitaciones! Has completado este proyecto. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.



