Maison  >  Article  >  Java  >  Comment utiliser Quartz pour implémenter des tâches planifiées en Java

Comment utiliser Quartz pour implémenter des tâches planifiées en Java

WBOY
WBOYavant
2023-04-19 23:49:051773parcourir

Fichier de configuration

sue.spring.quartz.cron=*/5 * * * * ?

pom

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-quartz</artifactId>
</dependency>

Tâches et déclencheurs planifiés

package com.luke.demo.schedule;
import org.quartz.*;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class QuartzConfig {
    @Value("${sue.spring.quartz.cron}")
    private String testCron;
    /**
     * 创建定时任务
     */
    @Bean
    public JobDetail quartzTestDetail() {
        JobDetail jobDetail = JobBuilder.newJob(QuartzTestJob.class)
                //添加认证信息
                .withIdentity("quartzTestDetail", "QUARTZ_TEST")
                .build();
        return jobDetail;
    }
    /**
     * 创建触发器
     */
    @Bean
    public Trigger quartzTestJobTrigger() {
        //执行频率
        CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(testCron);
        //创建触发器
        Trigger trigger = TriggerBuilder.newTrigger()
                .forJob(quartzTestDetail())
                //添加认证信息
                .withIdentity("quartzTestJobTrigger", "QUARTZ_TEST_JOB_TRIGGER")
                //添加执行规则
                .withSchedule(cronScheduleBuilder)
                .build();
        return trigger;
    }
}

Code métier pour les tâches planifiées

Le QuartzTestJob ici est le suivant, et la méthode executeInternal contient les tâches qui doivent être exécutées régulièrement.

public class QuartzTestJob extends QuartzJobBean {
    @Override
    protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
        System.out.println("现在是"+ new Date());
    }
}

Lorsque le projet démarre, le résultat sera le suivant selon la fréquence définie :

Comment utiliser Quartz pour implémenter des tâches planifiées en Java

Bien sûr, vous pouvez également démarrer une tâche planifiée pour interroger les résultats de retour des trois parties lorsque vous travailliez. sur le système de contrôle des risques pour l'activité de prêt automobile, vous avez demandé de collecter les données de trois parties, de demander activement puis d'interroger les résultats par tâches planifiées.

Maintenant, il semble que la mise en œuvre à l'aide de la file d'attente des messages soit également très rapide. Les messages retardés peuvent simplement répondre à cette exigence commerciale, puis placer un message retardé dans la file d'attente des messages. Lorsque le temps est écoulé, demandez le résultat. n'est pas bon, mettez simplement un message retardé dans la file d'attente des messages. L’avantage de cela par rapport aux tâches planifiées est que cela évite la mise au ralenti du processeur et améliore les performances.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer