1. Introduzca la dependencia de Quartz
2. Agregue la anotación @EnableScheduling a la clase de inicio SpringBoot
3. Cree una clase de trabajo de tarea programada en el método, el código es el siguiente:
package com.jlzh.lftwebservice.service.quartz;
import org.quartz.JobExecutionException;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* @ClassName: QuartzJob
* @ Description: 定时任务类
* @author:
* @date:2022/11/02
*/
@Component
public class QuartzJob{
@Scheduled(cron = "0/5 * * * * ? ")
protected void executeInternal() throws JobExecutionException {
String time = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date());
System.out.println(time + "===> 正在工作。。。");
}
}
En este punto, cabe señalar que la clase donde se encuentra la tarea programada debe ser administrada por el contenedor Spring, la forma más sencilla es agregar la anotación @Component a la clase. Agregar la anotación @Scheduled(cron = "0/5 * * * * ? ") al método de trabajo de la tarea programada indica que la tarea se ejecuta cada 5 segundos.
4. El resultado de la ejecución se muestra en la captura de pantalla:
5. El valor de cron también se puede especificar en forma de un archivo de configuración externo, el código es el siguiente:
package com.jlzh.lftwebservice.service.quartz;
import org.quartz.JobExecutionException;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* @ClassName: QuartzJob
* @ Description: 定时任务类
* @author:
* @date:2022/11/02
*/
@Component
public class QuartzJob{
@Scheduled(cron = "${cron.exp}")
protected void executeInternal() throws JobExecutionException {
String time = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date());
System.out.println(time + "===> 正在工作。。。");
}
}
Luego complete el valor de la variable de configuración en el archivo de configuración application.yml, este método es más flexible y la hora se puede cambiar sin modificar el código. Y si el valor se cambia a "-", significa que la tarea programada no es válida.
Después de cambiar el valor a "-", significa que la tarea programada no es válida. Si usa "-" directamente, se marcará en rojo y podrá citarlo entre comillas simples.