实现elastic-job分布式调度框架的spring boot自动装载

实现elastic-job分布式调度框架的spring boot自动装载

背景

  1. 每个复杂的项目都存在大量重要的定时调度任务,引入一个好用的分布式调度任务框架是非常重要的。elastic job是当当网开源的基于quartz的分布式调度框架,通过zookeeper实现分布式协调,加上支持分片、日志追踪、任务管理UI、高可性被大家熟知。
  2. 目前新的项目基本都是spring boot,如何通过约束、配置方式快速构建elastic job是一个必要解决问题 ;所以博主自己开发了一个elastic job 的spring boot starter自动装载模块;目前该starter已经在公司多个项目生产环境运行。研发只需关注实现job和在application.yml增加相应配置即可。

运行环境

1.JDK1.8
2.MAVEN3.3+
3.Spring boot 2.1.17.RELEASE
4.Zookeeper 3.4.6

源代码下载

https://download.youkuaiyun.com/download/m0_38138879/19421275

第三方依赖关系

<dependencies>
         <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.20</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>com.dangdang</groupId>
        <artifactId>elastic-job-lite-core</artifactId>
        <version>2.1.5</version>
    </dependency>
    <dependency>
        <groupId>com.dangdang</groupId>
        <artifactId>elastic-job-lite-spring</artifactId>
        <version>2.1.5</version>
    </dependency>
    <dependency>
        <groupId>org.apache.curator</groupId>
        <artifactId>curator-framework</artifactId>
        <version>2.10.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.curator</groupId>
        <artifactId>curator-client</artifactId>
        <version>2.10.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.curator</groupId>
        <artifactId>curator-recipes</artifactId>
        <version>2.10.0</version>
    </dependency>
</dependencies>

核心配置代码

1.绑定注册中心配置信息的POJO

package cn.hrs.tools.spring.elasticjob.properties;

import lombok.Data;

/**
 * @author huangrusheng
 * @version 1.0
 * @date 2021/6/6 11:04
 */
@Data
public class ZookeeperRegistryCenterProperties {
   
    /**
     * 连接Zookeeper服务器的列表.
     * 包括IP地址和端口号.
     * 多个地址用逗号分隔.
     * 如: host1:2181,host2:2181
     */
    private  String serverLists;
    /**
     * 命名空间.
     */
    private  String namespace;
    /**
     * 等待重试的间隔时间的初始值.
     * 单位毫秒.
     */
    private int baseSleepTimeMilliseconds = 1000;
    /**
     * 等待重试的间隔时间的最大值.
     * 单位毫秒.
     */
    private int maxSleepTimeMilliseconds = 3000;
    /**
     * 最大重试次数.
     */
    private int maxRetries = 3;
    /**
     * 会话超时时间.
     * 单位毫秒.
     */
    private int sessionTimeoutMilliseconds;
    /**
     * 连接超时时间.
     * 单位毫秒.
     */
    private int connectionTimeoutMilliseconds;
    /**
     * 连接Zookeeper的权限令牌.
     * 缺省为不需要权限验证.
     */
    private String digest;
    
}

2.绑定调度任务配置的POJO

package cn
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

huangrusheng_23

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值