SpringBoot:整合quartz实现定时任务-集群化配置

一、为什么需要Quartz集群

1、防止单点故障,减少对业务的影响
2、通过负载均衡,减少对节点的压力

3、注意事项
Quartz集群必须将配置持久化到数据库。
Quartz使用的是随机的负载均衡算法,不能指定节点执行。
注意Quartz集群各个节点的时间必须保持同步。

二、代码实现

1、工程结构
在这里插入图片描述
2、父节点pom配置

<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>

    <!-- pagehelper 分页插件,包含了mybatis -->
    <dependency>
      <groupId>com.github.pagehelper</groupId>
      <artifactId>pagehelper-spring-boot-starter</artifactId>
      <version>1.4.7</version>
    </dependency>

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

    <!-- Mysql驱动包 -->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
    </dependency>

3、8081节点yml配置
8082配置一样,只是端口号是8082

# 数据库
spring:
    datasource:
        type: com.alibaba.druid.pool.DruidDataSource
        driverClassName: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://localhost:3306/quartz?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
        username: root
        password: 123456
    quartz:
        job-store-type: jdbc
        jdbc:
            initialize-schema: always
        properties:     # quartz集群配置
          org:
              quartz:
                  jobStore:
                      isClustered: true
                      class: org.springframework.scheduling.quartz.LocalDataSourceJobStore
                      driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate
                      misfireThreshold: 120000
                  threadPool:
                     threadCount: 20
                  scheduler:
                     instanceName: test-cluster
                     instanceId: AUTO
mybatis:
    type-aliases-package: com.pzj.quartz.entity
    mapper-locations: classpath*:mapper/**/*Mapper.xml

server:
    port: 8081

4、编写任务代码
通过@Bean注解创建JobDetail,Trigger
代码内容,可以参考前面的基础篇

SpringBoot:整合quartz实现定时任务-基础篇

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值