SpringBoot+Quartz+数据库存储+Quartz四大应用场景

学习流程

1、Spring整合Quartz
2、读取数据库中表达式启动定时任务1(每5s执行)
3、更改定时任务状态(启用/禁用),定时任务1停止
4、读取数据库中表达式启动定时任务2(每5s执行),在对应作业类中打印定时任务2携带的参数
5、读取数据库中表达式启动定时任务3(每5s执行改成每20s执行),更改数据库定时任务表达式,定时任务3对应执行策略相应发生改变。

为了讲解内容方便,不涉及到页面,又能将功能展现出来,本篇博客采取的是spring自带的定时器与quartz调度框架一并使用。

那么为什么要做么做呢
在这里插入图片描述

quartz调度框架和其它的框架有点不一样,在于它自带的有内置表如果没有内置表项目是启动不了的

还有点这个网站进入是真滴慢
Quatrz内置表下载地址

1.点击Downloads下载
在这里插入图片描述
2.下载所需版本
在这里插入图片描述
3.得到之后解压出来
在这里插入图片描述
4.找到对应的表文件
在这里插入图片描述
5.导入数据库

在这里插入图片描述

6.表的结构图
在这里插入图片描述
在这里插入图片描述

导入pom依赖

  • quartz需要使用C3P0连接池将数据持久化到数据库
  • Quartz各版本数据库连接池技术更新情况
  • Quartz 2.0 以前 DBCP
  • Quartz 2.0 以后 C3P0(包含2.0)-

所以我们先要导入Druid的依赖

<dependency>
	<groupId>com.alibaba</groupId>
	<artifactId>druid-spring-boot-starter</artifactId>
	<version>1.1.10</version>
</dependency>

接着是quartz-jobs依赖

<dependency>
            <groupId>org.quartz-scheduler</groupId>
            <artifactId>quartz-jobs</artifactId>
            <version>2.2.1</version>
</dependency>

Quartz是自带的有连接池的配置文件的默认的就是C3P0 所以需要去重写那个配置文件
在这里插入图片描述

更换Druid源

c、在项目中添加quartz.properties文件(这样就不会加载自带的properties文件)
此文件的内容主要分为:
scheduler,
ThreadPool,
JobStore,
plugin,
Datasources等部分,
覆盖properties文件的目的是覆盖默认的数据源,更换为druid的数据配置

1.quartz.properties文件
在这里插入图片描述

#
#============================================================================
# Configure Main Scheduler Properties 调度器属性
#============================================================================
org.quartz.scheduler.instanceName: DefaultQuartzScheduler
org.quartz.scheduler.instanceId = AUTO
org.quartz.scheduler.rmi.export: false
org.quartz.scheduler.rmi.proxy: false
org.quartz.scheduler.wrapJobExecutionInUserTransaction: false
org.quartz.threadPool.class: org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount= 10
org.quartz.threadPool.threadPriority: 5
org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread: true
org.quartz.jobStore.misfireThreshold: 60000
#============================================================================
# Configure JobStore
#============================================================================
#存储方式使用JobStoreTX,也就是数据库
org.quartz.jobStore.class: org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.driverDelegateClass:org.quartz.impl.jdbcjobstore.StdJDBCDelegate
#使用自己的配置文件
org.quartz.jobStore.useProperties:true
#数据库中quartz表的表名前缀
org.quartz.jobStore.tablePrefix:qrtz_
org.quartz.jobStore.dataSource:qzDS
#是否使用集群(如果项目只部署到 一台服务器,就不用了)
org.quartz.jobStore.isClustered = true
#============================================================================
# Configure Datasources
#============================================================================
#配置数据库源(org.quartz.dataSource.qzDS.maxConnections: c3p0配置的是有s的,druid数据源没有s)
org.quartz.dataSource.qzDS.connectionProvider.class:com.zhuchenxi.quartz02.utils.DruidConnectionProvider
org.quartz.dataSource.qzDS.driver: com.mysql.jdbc.Driver
org.quartz.dataSource.qzDS.URL: jdbc:mysql://localhost:3306/xx?useUnicode=true&characterEncoding=utf8
org.quartz.dataSource.qzDS.user: root
org.quartz.dataSource.qzDS.password:
org.quartz.dataSource.qzDS.maxConnection: 10


2.配置类更换源操作地点
在这里插入图片描述

package com.zhuchenxi.quartz02.utils;

import com.alibaba.druid.pool.DruidDataSource;
import org.quartz.SchedulerException;
import org.quartz.utils.ConnectionProvider;

import java.sql.Connection;
import java.sql.SQLException;

/*
#======================&#
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值