1.下载quartz的sql文件
直接download,后解压找到 table_mysql.sql 数据库使用的是mysql数据库
2.将sql文件导入到需要链接的数据库,得到以下文件
3. 引入quartz的maven依赖
lombok我在代码中有用到,一起加上了
<!-- Lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.20</version>
</dependency>
<!-- quartz -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-quartz</artifactId>
</dependency>
4.配置 application.properties
spring.datasource.url= jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=root
# Quartz
spring.quartz.job-store-type=jdbc
spring.quartz.jdbc.initialize-schema=never
spring.quartz.properties.scheduler.instanceName=clusteredScheduler
spring.quartz.properties.scheduler.instanceId=AUTO
spring.quartz.properties.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX
spring.quartz.properties.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate
spring.quartz.properties.jobStore.tablePrefix=qrtz_
spring.quartz.properties.jobStore.isClustered=true
spring.quartz.properties.jobStore.clusterCheckinInterval=10000
spring.quartz.properties.jobStore.useProperties=false
spring.quartz.properties.threadPool.class=org.quartz.simpl.SimpleThreadPool
spring.quartz.properties.threadPool.threadCount=10
spring.quartz.properties.threadPool.threadPriority=5
spring.quartz.properties.threadPool.threadsInheritContextClassLoaderOfInitializingThread=true
5.controller层
@RestController
@RequestMapping("/quartz")
public class QuartzController {
private final IJobService jobService;
@Autowired
public QuartzController(IJobService jobService) {
this.jobService = jobService;
}
@GetMapping("/all")
public JsonResult queryAllJobs() {
List<ScheduleJobDTO> list = jobService.listAllJob();
return JsonResult.ok(list);
}
@GetMapping("/running")
public JsonResult queryRunningJobs() {
List<ScheduleJobDTO> list = jobService.listRunningJob();
return JsonResult.ok(list);
}
@PostMapping("")
public JsonResult addJob(@RequestBody ScheduleJobParam param) {
boolean flag = jobService.addJob(param);
return flag ? JsonResult.ok() : JsonResult.error("添加失败");
}
@PutMapping("/pause")
public JsonResult<String> pauseJob(@RequestBody ScheduleJobParam param) {
boolean flag = jobService.pauseJob(param.getJobName(), param.getJobGroup());
return flag ? JsonResult.ok() : JsonResult.error("停止失败"