SpringBoot+Quartz+数据库存储

SpringBoot+Quartz+数据库存储

Spring整合Quartz

a、quartz调度框架是有内置表的
进入quartz的官网 添加链接描述,点击Downloads,
下载后在目录\docs\dbTables下有常用数据库创建quartz表的脚本,例如:“tables_mysql.sql”

table_mysql.sql
table_mysql_innodb.sql
上述两者所有的数据库引擎不一样
在这里插入图片描述
下载完成后是这个样子
在这里插入图片描述
quartz项目
在这里插入图片描述

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

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

DruidConnectionProvider.java

package com.lzy.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;

/*
#============================================================================
# JDBC
#============================================================================
org.quartz.jobStore.driverDelegateClass:org.quartz.impl.jdbcjobstore.StdJDBCDelegate
org.quartz.jobStore.useProperties:false
org.quartz.jobStore.dataSource:qzDS
#org.quartz.dataSource.qzDS.connectionProvider.class:org.quartz.utils.PoolingConnectionProvider
org.quartz.dataSource.qzDS.connectionProvider.class:com.zking.q03.quartz.DruidConnectionProvider
org.quartz.dataSource.qzDS.driver:com.mysql.jdbc.Driver
org.quartz.dataSource.qzDS.URL:jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8
org.quartz.dataSource.qzDS.user:root
org.quartz.dataSource.qzDS.password:root
org.quartz.dataSource.qzDS.maxConnections:30
org.quartz.dataSource.qzDS.validationQuery: select 0
*/

/**
 * [Druid连接池的Quartz扩展类]
 *
 * @ProjectName: []
 * @Author: [xuguang]
 * @CreateDate: [2015/11/10 17:58]
 * @Update: [说明本次修改内容] BY[xuguang][2018/11/15]
 * @Version: [v1.0]
 */
public class DruidConnectionProvider implements ConnectionProvider {

     /*
     * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     *
     * 常量配置,与quartz.properties文件的key保持一致(去掉前缀),同时提供set方法,Quartz框架自动注入值。
     *
     * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     */

    //JDBC驱动
    public String driver;
    //JDBC连接串
    public String URL;
    //数据库用户名
    public String user;
    //数据库用户密码
    public String password;
    //数据库最大连接数
    public int maxConnection;
    //数据库SQL查询每次连接返回执行到连接池,以确保它仍然是有效的。
    public String validationQuery;

    private boolean validateOnCheckout;

    private int idleConnectionValidationSeconds;

    public String maxCachedStatementsPerConnection;

    private String discardIdleConnectionsSeconds;

    public static final int DEFAULT_DB_MAX_CONNECTIONS = 10;

    public static final int DEFAULT_DB_MAX_CACHED_STATEMENTS_PER_CONNECTION = 120;

    //Druid连接池
    private DruidDataSource datasource;

    /*
    * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    *
    * 接口实现
    *
    * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    */
    public Connection getConnection() throws SQLException {
        return datasource.getConnection();
    }

    public void shutdown() throws SQLException {
        datasource.close();
    }
    public void initialize() throws SQLException{
        if (this.URL == null) {
            throw new SQLException("DBPool could not be created: DB URL cannot be null");
        }

        if (this.driver == null) {
            throw new
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于Spring Boot Quartz集群,你可以按照以下步骤进行配置和实现: 1. 首先,确保你的项目中引入了Quartz依赖,即`org.quartz-scheduler:quartz`和`org.quartz-scheduler:quartz-jobs`。 2. 创建一个Spring Boot应用,并在其中添加Quartz的相关配置。 3. 在你的应用程序的主类(例如QuartzSpringbootApplication)中添加`@EnableScheduling`注解,以启用Quartz调度。 4. 为了实现集群,你需要配置一个数据库作为Quartz的持久化存储。你可以使用任何支持的数据库,比如MySQL、PostgreSQL等。 5. 在你的application.properties或application.yml文件中,配置Quartz的数据源和相关属性。例如,你可以指定数据库的URL、用户名、密码等。 6. 在数据库中创建Quartz的相关表。Quartz提供了一个用于创建表的脚本,你可以在官方文档中找到。 7. 配置Quartz的调度器。你可以通过编写一个QuartzConfig类,并在其中定义一个SchedulerFactoryBean bean来实现。在这个类中,你可以设置数据源、作业存储等属性。另外,你还可以设置一些其他的配置,比如调度器的线程池大小、线程名称等。 8. 在你的应用程序中创建一个或多个Quartz作业。你可以使用`@Component`注解将作业类标记为Spring的组件,并实现`Job`接口。 9. 在作业类中,实现`execute`方法来编写具体的作业逻辑。 10. 使用`@Scheduled`注解来配置作业的调度规则。你可以指定作业的执行时间、触发器类型等。 11. 在集群环境下,需要将调度任务持久化到数据库中。Quartz会自动将调度任务持久化到数据库,并在每个节点上同步。这样,当一个节点宕机时,其他节点可以接管执行。 12. 部署和运行你的Spring Boot应用程序。确保所有的节点都连接到同一个数据库,并且配置正确。 通过以上步骤,你可以配置和实现Spring Boot Quartz集群。这将允许你在分布式环境中使用Quartz调度任务,并确保高可用性和负载均衡的特性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值