Rumah  >  Artikel  >  Java  >  Cara menggunakan kuarza untuk melaksanakan tugas berjadual di Jawa

Cara menggunakan kuarza untuk melaksanakan tugas berjadual di Jawa

WBOY
WBOYke hadapan
2023-04-19 23:49:051754semak imbas

Fail konfigurasi

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

pom

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

Tugas dan pencetus yang dijadualkan

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;
    }
}

Kod perniagaan untuk tugas yang dijadualkan

Di sini QuartzTestJob adalah seperti berikut Kaedah executeInternal mengandungi tugasan yang perlu dilaksanakan dengan kerap.

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

Apabila projek dimulakan, output akan menjadi seperti berikut mengikut kekerapan yang ditetapkan:

Cara menggunakan kuarza untuk melaksanakan tugas berjadual di Jawa

Sudah tentu, anda juga boleh memulakan tugas berjadual untuk menanyakan pulangan ketiga-tiga pihak Akibatnya, semasa saya mengusahakan sistem kawalan risiko untuk perniagaan pinjaman kereta, saya meminta data daripada tiga pihak, memintanya secara aktif, dan kemudian meninjau keputusan dengan tugas yang dijadualkan.

Kini nampaknya pelaksanaan menggunakan baris gilir mesej juga sangat pantas Mesej tertunda hanya boleh memenuhi keperluan perniagaan ini dan kemudian meletakkan mesej tertunda ke dalam baris gilir mesej Hasilnya. Jika ia tidak berfungsi, letakkan satu lagi mesej tertunda dalam baris gilir mesej. Kelebihan ini berbanding dengan tugas yang dijadualkan ialah ia mengelakkan melahu CPU dan meningkatkan prestasi.

Atas ialah kandungan terperinci Cara menggunakan kuarza untuk melaksanakan tugas berjadual di Jawa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
Artikel sebelumnya:Apakah dua mod caching javaArtikel seterusnya:Apakah dua mod caching java