Springboot 整合 quartz

本文详细介绍了如何在Spring Boot项目中集成Quartz定时任务框架。从下载Quartz SQL文件到配置数据库,再到引入Maven依赖,设置application.properties,创建Controller、Service接口及其实现,定义实体类和测试任务类,最后通过HTTP请求进行任务操作,如添加、查询、暂停和恢复。在实施过程中需要注意JobClass配置的正确性,避免找不到类路径或数据库配置错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.下载quartz的sql文件

quartz下载链接

直接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("停止失败"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值