SpringBoot chama tarefas de temporização do Quartz por meio de anotações

1. Introduzir a dependência do Quartz
insira a descrição da imagem aqui
2. Adicionar a anotação @EnableScheduling à classe de inicialização SpringBoot
insira a descrição da imagem aqui
3. Criar uma classe de trabalho de tarefa agendada no método, o código é o seguinte:

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 + "===> 正在工作。。。");
    }
}

Neste ponto, deve-se observar que a classe onde está localizada a tarefa agendada deve ser gerenciada pelo contêiner Spring. A maneira mais fácil é adicionar a anotação @Component à classe. Adicionar a anotação @Scheduled(cron = "0/5 * * * * ? ") ao método de trabalho da tarefa agendada indica que a tarefa é executada a cada 5 segundos.
4. O resultado da execução é mostrado na captura de tela:
insira a descrição da imagem aqui
5. O valor do cron também pode ser especificado na forma de um arquivo de configuração externo, o código é o seguinte:

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 + "===> 正在工作。。。");
    }
}

Em seguida, preencha o valor da variável de configuração no arquivo de configuração application.yml, este método é mais flexível e o horário pode ser alterado sem modificar o código. E se o valor for alterado para “-”, significa que a tarefa agendada é inválida.
insira a descrição da imagem aqui
Depois que o valor for alterado para "-", significa que a tarefa agendada é inválida. Se você usar "-" diretamente, ele será marcado em vermelho e poderá ser colocado entre aspas simples.
insira a descrição da imagem aqui

Acho que você gosta

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