ShardingSphere-ElasticJob采的坑 截至3.0.1版本

ShardingSphere-ElasticJob采的坑 截至3.0.1版本,第1张

ShardingSphere-ElasticJob采的坑 截至3.0.1版本 ElasticJob

EasticJob原先是属于当当的,在2017 年的时候已经停止了维护,最近在2021年,又重新开启了维护,这篇文章主要是写重启维护后,所带来的一些更改,以及所采的一些坑。

1.官网地址
https://shardingsphere.apache.org/elasticjob/current/cn/overview/
https://github.com/apache/shardingsphere-elasticjob

2.新版elastic-job平台的部署方法

安装目录是/usr/local/soft/elasticjob
wget https://downloads.apache.org/shardingsphere/elasticjob-ui-3.0.0/apache-shardingsphere-elasticjob-3.0.0-lite-ui-bin.tar.gz;
tar -zxvf apache-shardingsphere-elasticjob-3.0.0-lite-ui-bin.tar.gz;
mv  apache-shardingsphere-elasticjob-3.0.0-lite-ui-bin elasticjob;
cd  /usr/local/soft/elasticjob/elasticjob/conf;
修改application.properties文件的端口和账号上传mysql-connector-java-8.0.15.jar 到/usr/local/soft/elasticjob/elasticjob/lib;
没这一步在3.0.0版本的ui 将无法写入mysql的数据源cd  /usr/local/soft/elasticjob/elasticjob/bin;
./start.sh;
http://192.168.16.147:5073/#/login  测试登录


3.新版Elastic-job 需要 maven 版本3.5.0 以上 ;java8 以上;zookeeper 版本3.6.0 以上(java 代码里接入的zk和平台里的zk都要3.6.0 版本以上)

4. 代码的集成
项目结构图

pom文件


    1.8
    5.1.0
    3.0.0


    
    
        org.apache.shardingsphere.elasticjob
        elasticjob-error-handler-email
        ${elasticjob.version}
    
    
        org.springframework.boot
        spring-boot-starter
    
    
        org.springframework.boot
        spring-boot-starter-web
        
            
                org.springframework.boot
                spring-boot-starter-logging
            
        
    
    
        org.apache.shardingsphere.elasticjob
        elasticjob-lite-spring-namespace
        ${elasticjob.version}
    
    
    
        org.apache.commons
        commons-dbcp2
        2.2.0
    
    
    
        com.h2database
        h2
        1.4.196
    


    
        org.apache.shardingsphere.elasticjob
        elasticjob-lite-core
        ${elasticjob.version}
        
            
                curator-client
                org.apache.curator
            
            
                curator-framework
                org.apache.curator
            
            
                curator-recipes
                org.apache.curator
            
        
    

    
        curator-client
        
            
                zookeeper
                org.apache.zookeeper
            
        
        org.apache.curator
        ${curator.version}
    

    
        zookeeper
        org.apache.zookeeper
        3.6.0
    
    
        curator-recipes
        
            
                curator-framework
                org.apache.curator
            
        
        org.apache.curator
        ${curator.version}
    
    
        curator-framework
        org.apache.curator
        ${curator.version}
    
    
        org.springframework.boot
        spring-boot-starter-test
        test
    
    
        org.springframework.boot
        spring-boot-starter-log4j2
        
            
                log4j-core
                org.apache.logging.log4j
            
            
                log4j-jul
                org.apache.logging.log4j
            
            
                log4j-slf4j-impl
                org.apache.logging.log4j
            
        
    
    
        log4j-core
        org.apache.logging.log4j
    
    
        log4j-jul
        org.apache.logging.log4j
    
    
        log4j-api
        org.apache.logging.log4j
    
    
        org.apache.logging.log4j
        log4j-slf4j-impl
    

注意一点:elasticjob 的版本需要是3.0.0 版本,3.0.1 版本我这边是启动的起来,但是Job平台那显示异常,报错如下

Unable to find property 'timeZone' on class: org.apache.shardingsphere.elasticjob.infra.pojo.JobConfi

Job.xml 文件如下



  


    
    
    


    
        
            smtp.qq.com
            25
            22222222@qq.com
            ufuvhzyogrcxchbf
            false
            错误
            22222222@qq.com
            11111111@qq.com


            false
        
    



base-job.xml的配置文件如下



    
    

    
        
        
        
        
    


    
    

作业监听器的代码

package com.top.elasticjob.joblistener;

import org.apache.shardingsphere.elasticjob.infra.listener.ElasticJobListener;
import org.apache.shardingsphere.elasticjob.infra.listener.ShardingContexts;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;


public class MyJobListener implements ElasticJobListener {


    @Override
    public void beforeJobExecuted(ShardingContexts shardingContexts) {
             System.out.println("任务执行前");
    }

    @Override
    public void afterJobExecuted(ShardingContexts shardingContexts) {
        System.out.println("任务执行后");
    }

    @Override
    public String getType() {
        //这个名称需要和配置文件的对应
        return "myJobListener";
    }
}

简单Job的代码

package com.top.elasticjob.job;

import org.apache.shardingsphere.elasticjob.api.ShardingContext;
import org.apache.shardingsphere.elasticjob.simple.job.SimpleJob;

public class TestJob implements SimpleJob {

    @Override
    public void execute(ShardingContext shardingContext) {
        int a0=0;
        System.out.println(2222222);
    }
}

说明:
事件追踪:
我这边以mysql 为数据库来做Job的事件追踪的话,数据库的内容录入不进去,java的Job启动和Elastic-job 平台启动都正常,但是数据录入不进去,所以这边采用的是H2 数据库,配置里面 的tracing-ref=“elasticJobTrace” 就是事件追踪的配置核心



    org.apache.commons
    commons-dbcp2
    2.2.0



    com.h2database
    h2
    1.4.196

错误处理策略:

 job-error-handler-type="EMAIL"
  
            smtp.qq.com
            25
            22222222@qq.com
            ufuvhzyogrcxchbf
            false
            错误
            22222222@qq.com
            11111111@qq.com


            false
        

这些配置都是配置Email 策略的,当Job 运行出错时,任务不中断,发送邮件通知
email.password 的密码 是下图开启SMTP 时所给的授权码

作业监听器

job-listener-types="myJobListener"

这个属性就是配置作业监听器的地方,值需要和写作业监听器类里面的getType 的返回值一样;加载作业监听器是通过SPI的方式加载的,需要在resources 下配置

文件的内容就是所写的作业监听器MyJobListener类的地址
新版的Elastic-job相比于旧版的Job来说,功能都差不多,但是所支持的zk版本更高,事件追踪对mysql的支持貌似不够完善。本例中需要自行安装zookeeper注册中心和h2数据库,ElasticJob的其余内容和配置 相对简单,查看官网即可,需要源码的可以关注微信公众号(小白逆袭之路),回复 elastic-job。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5701881.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存