SpringBoot appelle les tâches de synchronisation Quartz via des annotations

1. Introduisez la dépendance Quartz
insérer la description de l'image ici
2. Ajoutez l'annotation @EnableScheduling à la classe de démarrage SpringBoot
insérer la description de l'image ici
3. Créez une classe de travail de tâches planifiées dans la méthode, le code est le suivant :

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

A ce stade, il convient de noter que la classe où se trouve la tâche planifiée doit être gérée par le conteneur Spring. Le plus simple est d'ajouter l'annotation @Component à la classe. L'ajout de l'annotation @Scheduled(cron = "0/5 * * * * ? ") à la méthode de travail de la tâche planifiée indique que la tâche est exécutée toutes les 5 secondes.
4. Le résultat de l'exécution est affiché dans la capture d'écran :
insérer la description de l'image ici
5. La valeur de cron peut également être spécifiée sous la forme d'un fichier de configuration externe, le code est le suivant :

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

Remplissez ensuite la valeur de la variable de configuration dans le fichier de configuration application.yml. Cette méthode est plus flexible, et l'heure peut être modifiée sans modifier le code. Et si la valeur est remplacée par "-", cela signifie que la tâche planifiée n'est pas valide.
insérer la description de l'image ici
Une fois la valeur modifiée en "-", cela signifie que la tâche planifiée n'est pas valide. Si vous utilisez directement "-", elle sera marquée en rouge et vous pourrez la mettre entre guillemets simples.
insérer la description de l'image ici

Je suppose que tu aimes

Origine blog.csdn.net/weixin_44812604/article/details/127683721
conseillé
Classement