Quartz Scheduler
- 依赖名称: Quartz Scheduler
- 功能描述: Schedule jobs using Quartz.
- 使用 Quartz 安排作业。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-quartz</artifactId>
</dependency>
在 IntelliJ IDEA 中创建 Spring Boot 项目并使用 Quartz Scheduler,可以选择使用 MySQL 数据库或不使用数据库。为快速了解 Quartz Scheduler,下面先介绍不使用数据库的情况。
目前文章中的示例代码已经可以下载。
·开源代码
中 SpringBoot版本为3.3.2,JDK版本为17。
创建 Spring Boot 项目
-
打开 IntelliJ IDEA:
启动 IntelliJ IDEA,点击 “Create New Project”。 -
选择 Spring Initializr:
在项目向导中选择 “Spring Initializr”,然后点击 “Next”。 -
填写项目基本信息:
- Group: 例如 com.dependencies
- Artifact: 例如
quartz-scheduler
- Name: 例如 quartz-scheduler
- Description: 例如 Demo project for Quartz Scheduler
- Package: 例如 com.dependencies.quartzscheduler
- Packaging: 选择
Jar
- Java Version: 选择你要使用的 Java 版本,例如
17
-
添加依赖:
在 “Dependencies” 部分,添加以下依赖:- Spring Web (Web)
- Spring Boot Starter Quartz (添加 Quartz Scheduler 的支持)
-
完成项目设置:
点击 “Next” 然后点击 “Finish” 创建项目。
配置 Quartz Scheduler
使用 MySQL 数据库
-
配置 application.properties:
在src/main/resources/application.properties
文件中添加 MySQL 数据库的配置:spring.application.name=quartz-scheduler spring.quartz.job-store-type=memory
-
创建 Quartz 配置类:
在com.example.quartzdemo
包中创建一个新的类QuartzConfig
,并添加以下代码:package com.dependencies.quartzscheduler; import org.quartz.JobDetail; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.quartz.JobDetailFactoryBean; import org.springframework.scheduling.quartz.SimpleTriggerFactoryBean; /** * @author zhizhou 2024/8/6 23:10 */ @Configuration public class QuartzConfig { @Bean public JobDetailFactoryBean jobDetail() { JobDetailFactoryBean jobDetailFactory = new JobDetailFactoryBean(); jobDetailFactory.setJobClass(SampleJob.class); jobDetailFactory.setDescription("Invoke Sample Job service..."); jobDetailFactory.setDurability(true); return jobDetailFactory; } @Bean public SimpleTriggerFactoryBean trigger(JobDetail jobDetail) { SimpleTriggerFactoryBean trigger = new SimpleTriggerFactoryBean(); trigger.setJobDetail(jobDetail); trigger.setRepeatInterval(3000); // 3秒钟间隔 //trigger.setRepeatCount(SimpleTriggerFactoryBean.OBJECT_TYPE_ATTRIBUTE.);//REPEAT_INDEFINITELY return trigger; } }
-
创建 SampleJob 类:
在com.dependencies.quartzscheduler 包中创建一个新的类
SampleJob`,并添加以下代码:package com.dependencies.quartzscheduler; import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; import java.util.Date; /** * @author zhizhou 2024/8/6 23:11 */ @Component public class SampleJob implements Job { private static final Logger logger = LoggerFactory.getLogger(SampleJob.class); @Override public void execute(JobExecutionContext context) throws JobExecutionException { logger.info("Sample Job executed"+new Date()); } }
目前文章中的示例代码已经可以下载。
开源代码
中 SpringBoot版本为3.3.2,JDK版本为17。
运行项目
-
启动 Spring Boot 应用程序:
在 com.dependencies.quartzscheduler 包中找到 QuartzSchedulerApplication 类(由 Spring Initializr 自动生成),运行它。 -
查看日志输出:
启动后,每分钟你应该能在控制台日志中看到 “Sample Job executed” 的输出。
总结
通过以上步骤,在 我们已经在lliJ IDEA 中创建一个 Spring Boot 项目并配置 Quartz Scheduler。后面学习时可以自行尝试选择 MySQL 数据库或不使用数据库。使用数据库时,需要在 application.properties
文件中配置数据库连接信息;不使用数据库时,可以配置 Quartz 以使用内存存储。
如有需要可以私信,关注我我会第一时间给予帮助,一起学习。