工具、版本
开发工具:IntelliJ IDEA
JDK:1.8
spring-boot:2.5.6(事例使用,可根据自己版本调整)
maven:3.6.3
依赖jar
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<!--web-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--调取器-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-quartz</artifactId>
</dependency>
<!--mysql连接-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jdbc</artifactId>
</dependency>
<!--日志-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
项目结构
源码信息、配置
注册工厂:
@Configuration
public class ScheduleConfig {
private SchedulerFactoryBean schedulerFactoryBean;
public ScheduleConfig(SchedulerFactoryBean schedulerFactoryBean) {
this.schedulerFactoryBean = schedulerFactoryBean;
}
@Bean
public Scheduler scheduler() {
return schedulerFactoryBean.getScheduler();
}
}
Trigger: 以cron时间格式构建触发器。
最终项目封装构建:
JobDetail :实现job接口类。
构建JobDetail:
业务实现job:
配置:
spring.quartz.job-store-type=jdbc
spring.quartz.scheduler-name=quartz_scheduler_integrate
spring.quartz.jdbc.initialize-schema=always
必须指定DataSource。
指定数据库存储、并初始化数据表结构。
测试
注意事项
1.数据库持久必须指定数据源。
2.job不能出现同分组同名称。
3.Trigger不能出现同分组同名称。
项目源码地址
https://gitee.com/sunyiweigitee/quartz_scheduler_integrate.git