Esta página se tradujo automáticamente con la API de traducción de Google Cloud.
Algunas páginas se pueden leer mejor en su totalidad.
Quartz es una biblioteca de programación potente y ampliamente utilizada que se puede integrar con Spring Boot para programar tareas en nuestras aplicaciones. En esta publicación, veremos cómo crear un sistema de programación con Spring Boot y Quartz.
Antes de comenzar, deberá tener instalado lo siguiente en su máquina:
-Java8
Empecemos configurando nuestro proyecto. Usaremos Spring Boot para nuestro ejemplo, por lo que necesitaremos crear un nuevo proyecto Maven con las siguientes dependencias:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-quartz</artifactId>
</dependency>
</dependencies>
A continuación, necesitamos configurar Quartz. Podemos hacer esto creando un nuevo archivo llamado quartz.properties
en el directorio src/main/resources
con los siguientes contenidos:
org.quartz.scheduler.instanceName=MyScheduler
org.quartz.scheduler.instanceId=AUTO
org.quartz.threadPool.threadCount=5
org.quartz.jobStore.class=org.quartz.simpl.RAMJobStore
Esto configurará Quartz con algunas configuraciones básicas. Para obtener más información sobre la configuración de Quartz, consulte la [documentación de Quartz] (http://www.quartz-scheduler.org/documentation/quartz-2.x/configuration/).
Ahora que tenemos configurado Quartz, vamos a crear un trabajo. Los trabajos en Quartz son clases simples de Java que implementan la interfaz org.quartz.Job
. Para nuestro ejemplo, crearemos un trabajo que simplemente imprima un mensaje en la consola.
public class MyJob implements Job {
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
System.out.println("Hello, world!");
}
}
Ahora que tenemos un trabajo, tenemos que programarlo. Hay dos formas de hacerlo: mediante código o mediante anotaciones.
Para programar un trabajo a través del código, debemos hacer lo siguiente:
org.quartz.Trigger
que defina cuándo debe ejecutarse el trabajo.He aquí un ejemplo de cómo hacer esto:
@Component
public class MyJobScheduler {
@Autowired
private Scheduler scheduler;
public void scheduleJob() throws SchedulerException {
JobDetail job = JobBuilder.newJob(MyJob.class)
.withIdentity("myJob", "group1")
.build();
Trigger trigger = TriggerBuilder.newTrigger()
.withIdentity("myTrigger", "group1")
.startNow()
.withSchedule(SimpleScheduleBuilder.simpleSchedule()
.withIntervalInSeconds(5)
.repeatForever())
.build();
scheduler.scheduleJob(job, trigger);
}
}
En el código anterior, hemos creado un componente MyJobScheduler
que programa una instancia de MyJob
para que se ejecute cada 5 segundos.
Alternativamente, podemos programar un trabajo a través de anotaciones. Para hacer esto, simplemente necesitamos anotar nuestra clase MyJob
con @DisallowConcurrentExecution
y @Scheduled
.
@DisallowConcurrentExecution
@Scheduled(cron = "0/5 * * * * ?")
public class MyJob implements Job {
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
System.out.println("Hello, world!");
}
}
En el código anterior, hemos anotado nuestra clase MyJob
con @DisallowConcurrentExecution
para garantizar que solo se ejecute una instancia del trabajo a la vez. También lo hemos anotado con @Scheduled
, que toma una expresión cron que define cuándo debe ejecutarse el trabajo. En este caso, estamos ejecutando el trabajo cada 5 segundos.
Ahora que tenemos nuestro proyecto configurado, ¡vamos a ejecutarlo y ver nuestro trabajo en acción! Para hacer esto, simplemente ejecute el método principal
en la clase MyJobScheduler
. Debería ver el siguiente resultado:
Hello, world!
Hello, world!
Hello, world!
...
En esta publicación, hemos repasado cómo crear un sistema de programación con Spring Boot y Quartz. Hemos visto cómo configurar Quartz y cómo programar trabajos mediante código o anotaciones.
Para obtener más información sobre Quartz, consulte la [documentación de Quartz] (http://www.quartz-scheduler.org/documentation/quartz-2.x/).