SpringBoot llama a las tareas de sincronización de Quartz mediante anotaciones

1. Introduzca la dependencia de Quartz
inserte la descripción de la imagen aquí
2. Agregue la anotación @EnableScheduling a la clase de inicio SpringBoot
inserte la descripción de la imagen aquí
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:
inserte la descripción de la imagen aquí
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.
inserte la descripción de la imagen aquí
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.
inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_44812604/article/details/127683721
Recomendado
Clasificación