Skip to content

Quartz

字数
262 字
阅读时间
2 分钟

1 引入依赖

在你的 pom.xml 文件中添加 Quartz 依赖:

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

2 创建任务类

创建一个实现 Job 接口的任务类:

java
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;

public class MyJob implements Job {
    @Override
    public void execute(JobExecutionContext context) throws JobExecutionException {
        System.out.println("执行任务:" + System.currentTimeMillis());
    }
}

3 配置调度器

在配置类中配置 Quartz 的调度器:

java
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.ScheduleBuilder;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.quartz.CronScheduleBuilder;

@Configuration
public class QuartzConfig {

    @Bean
    public JobDetail myJobDetail() {
        return JobBuilder.newJob(MyJob.class)
                .withIdentity("myJob")
                .storeDurably()
                .build();
    }

    @Bean
    public Trigger myJobTrigger() {
        ScheduleBuilder<?> scheduleBuilder = CronScheduleBuilder.cronSchedule("0/5 * * * * ?"); // 每5秒执行一次
        return TriggerBuilder.newTrigger()
                .forJob(myJobDetail())
                .withIdentity("myJobTrigger")
                .withSchedule(scheduleBuilder)
                .build();
    }
}

4 启动应用

确保 Spring Boot 应用正常启动,Quartz 将自动调度任务。

5 测试任务

在控制台中,你应该能看到每5秒打印一次当前时间的输出,表示任务正在执行。

6 配置属性(可选)

可以在 application.properties 中配置 Quartz 的相关属性:

properties
spring.quartz.job-store-type=memory
spring.quartz.properties.org.quartz.scheduler.instanceName=MyScheduler
spring.quartz.properties.org.quartz.scheduler.instanceId=AUTO