Maison > Java > javaDidacticiel > 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
Libérer: 2023-04-19 23:49:05
avant
1820 Les gens l'ont consulté

Fichier de configuration

sue.spring.quartz.cron=*/5 * * * * ?
Copier après la connexion

pom

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-quartz</artifactId>
</dependency>
Copier après la connexion

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;
    }
}
Copier après la connexion

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());
    }
}
Copier après la connexion

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!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal