datax(16):源码解读AbstractReporter

datax(16):源码解读AbstractReporter之前介绍了通信类communication,容器类container,communication的收集类collector,今天再看一个报告类Reporter;一、概述AbstractReporter主要作用:Reporter的主要功能是将收集到的信息上报给上级主要方法:reportTGCommunication(汇报TG的communication信息给上级),reportJobCommunication(汇报job的communication信息给上级)二、族谱族谱里面目前只有父子.

大家好,又见面了,我是你们的朋友全栈君。

之前介绍了通信类communication,容器类container,communication的收集类collector,今天再看一个报告类Reporter;


一、概述AbstractReporter

  1. 主要作用:Reporter的主要功能是将收集到的信息上报给上级
  2. 主要方法:reportTGCommunication(汇报TG的communication信息给上级),reportJobCommunication(汇报job的communication信息给上级)

二、族谱

族谱里面目前只有父子二人,父类AbstractReporter里面只是负责声明抽象方法,子类里负责具体实现;
在这里插入图片描述


三、主要方法

AbstractReporter

  /** * 汇报job的communication信息给上级(目前datax中job无上级,所以子类中do nothing) * * @param jobId Long * @param communication Communication */
  public abstract void reportJobCommunication(Long jobId, Communication communication);

  /** * 汇报TG的communication信息给上级 * * @param taskGroupId Integer * @param communication Communication */
  public abstract void reportTGCommunication(Integer taskGroupId, Communication communication);

子类ProcessInnerReporter,注意里面reportJobCommunication是do nothing

  /** * 汇报job的communication信息给上级(目前datax中job无上级,所以do nothing) * * @param jobId Integer * @param communication Communication */
  @Override
  public void reportJobCommunication(Long jobId, Communication communication) { 
   
    // do nothing
  }

  /** * 将TaskGroupContainer的信息汇报给上级,操作也很简单直接更新注册时分配给该TaskGroup的Communication(Map中的值) * * @param taskGroupId Integer * @param communication Communication */
  @Override
  public void reportTGCommunication(Integer taskGroupId, Communication communication) { 
   
    LocalTGCommunicationManager.updateTaskGroupCommunication(taskGroupId, communication);
  }

注:

  1. 对源码进行略微改动,主要修改为 1 阿里代码规约扫描出来的,2 clean code;

  2. 所有代码都已经上传到github(master分支和dev),可以免费白嫖

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/145657.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pycharm终止程序快捷键_pycharm代码补全快捷键

    pycharm终止程序快捷键_pycharm代码补全快捷键不小心进行了错误的操作,想要回到前一步操作的时候撤销与反撤销操作:Ctrl+z,Ctrl+Shift+z

    2022年8月29日
    2
  • tracker服务器地址_rack服务器

    tracker服务器地址_rack服务器tracker服务器内容精选换一换云审计服务支持删除已创建的追踪器。删除追踪器对已有的操作记录没有影响,当您重新开通云审计服务后,依旧可以查看已有的操作记录。DELETE/v1.0/{project_id}/tracker无无无请参见错误码。云审计服务目前仅支持删除已创建的数据类追踪器。删除追踪器对已有的操作记录没有影响,当您重新开通云审计服务后,依旧可以查看已有的操作记录。DELETE/…

    2022年10月1日
    0
  • 直击微信公开课:2019年小程序将会有哪些改变?

    直击微信公开课:2019年小程序将会有哪些改变?

    2021年6月20日
    118
  • 提交到svn服务器时,一直缓冲不,

    提交到svn服务器时,一直缓冲不,

    2021年9月20日
    47
  • eclipse中android开发_Android开发教程

    eclipse中android开发_Android开发教程创建第一个Android项目本系列文章主要针对基于Eclipse的IDE下进行Android开发的技术、方法、过程与技巧进行记录。本文将记录,以Win1064位操作系统为例,使用Eclipse创建第一个Android项目,并配置运行的过程。该过程包括:创建Android工程和在Android虚拟设备上运行程序。创建Android工程1)启动Eclipse

    2022年10月4日
    0
  • Java中关于守护线程_守护线程和主线程

    Java中关于守护线程_守护线程和主线程在Java中有两类线程:UserThread(用户线程)、DaemonThread(守护线程) 用个比较通俗的比如,任何一个守护线程都是整个JVM中所有非守护线程的保姆:只要当前JVM实例中尚存在任何一个非守护线程没有结束,守护线程就全部工作;只有当最后一个非守护线程结束时,守护线程随着JVM一同结束工作。Daemon的作用是为其他线程的运行提供便利服务,守护线程最典型的应用就是

    2022年10月16日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号