Cree un método de tarea programada de Spring Boot basado en anotaciones

Hay tres formas de realizar tareas programadas en Spring Boot. La primera es la más simple: basada en anotaciones (@Scheduled) ; la segunda: basada en interfaces (SchedulingConfigurer) ; la tercera: basada en anotaciones para configurar múltiples tareas programadas de subprocesos .

Enfoque basado en anotaciones


Primero, abra la idea y cree un proyecto Springboot. No es necesario introducir ningún frasco. Springboot viene con su propio tiempo.

Luego, marque la clase de inicio con la anotación @EnableScheduling para indicar que hay una tarea programada en esta clase. Agregue la anotación @Scheduled() en el método de ejecución programado.

package com.example;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;

@SpringBootApplication
@EnableScheduling//第1步:开启定时任务
public class ScheduleDemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(ScheduleDemoApplication.class, args);
    }
    @Scheduled(fixedRate = 1000*5)//第2步:设置需要定时执行的任务,每隔5秒执行一次
    public void doSomething() {
        System.out.println("hello spring 定时器");
    }
}

 Haga clic en Inicio y verá la salida de la consola "hola" cada 6 segundos.

Por supuesto, las tareas programadas también se pueden asignar a otras clases. Por ejemplo, cree una clase Prueba.

package com.example.test;
 
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
 
/**
 * @Description
 * @ClassName Task1
 * @Author User
 * @date 2020.06.07 12:24
 */
@Component
public class Test {
 
    @Scheduled()
    public void sayWord(cron ="*/6 * * * * ?") {
        System.out.println("开启了定时任务");
    }
}

@Scheduled tiene tres métodos además de cron: fixRate,fixedDelay,inicialDelay

cron: la expresión se puede personalizar para ejecutar tareas, pero el método de ejecución es similar a fixDelay y también se calculará a partir de la hora de finalización del último método.

*Sugerencia: Es más conveniente hacer clic directamente en el generador de expresiones Cron en línea para generar parámetros*

tasa fija: el intervalo de tiempo entre ejecuciones del método de control se calcula a partir del momento en que se ejecuta el último método. Si se bloquea la ejecución del último método, se ejecutará la próxima vez hasta que se complete la última ejecución y después de un intervalo de tiempo determinado.

fixRate: se ejecuta a una velocidad determinada, que se calcula a partir del momento en que se ejecutó el último método. Si el último método fue bloqueado, no se ejecutará la próxima vez, sino el número acumulado de veces que se debe ejecutar durante el bloqueo. período, cuando ya no esté bloqueado, ejecute todos estos a la vez y luego continúe la ejecución a una tasa fija.

inicialDelay: inicialDelay = 10000 significa que después de que se inicia el contenedor, el temporizador se ejecutará nuevamente después de un retraso de 10 segundos.

Supongo que te gusta

Origin blog.csdn.net/lanlan112233/article/details/129424575
Recomendado
Clasificación