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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • MyBatis架构与源码分析<资料收集>

    MyBatis架构与源码分析<资料收集>

    2021年6月15日
    98
  • 基于阿里DDNS的ipv6 for windows版软件

    基于阿里DDNS的ipv6 for windows版软件基于阿里DDNS的ipv6forwindows版软件会搜到这篇帖子的同学,应该和我一样,满世界为自己的虚拟主机找寻ipv6的动态ddns程序吧?下面我先说说我的折腾故事:因为买了群晖,然后发现需要公网ip,但公网ip现在电信要钱了,开口100元一个月,挺黑的。没办法尝试了各种内网穿透,这类帖子网上很多,就不细说了,总之是各种折腾,各种不爽,最终选择了零遁伴侣做内网穿透还算稳定,速度也不错。…

    2022年6月13日
    40
  • java scp传输文件

    java scp传输文件&lt;dependency&gt;&lt;groupId&gt;ch.ethz.ganymed&lt;/groupId&gt;&lt;artifactId&gt;ganymed-ssh2&lt;/artifactId&gt;&lt;version&gt;build210&lt;/version&gt;&lt;/dependency&a

    2022年8月22日
    6
  • html 怎么让整体居中,html中表格整体居中 详解html里面如何让表格居中[通俗易懂]

    html 怎么让整体居中,html中表格整体居中 详解html里面如何让表格居中[通俗易懂]把表格在页面中间显示。。。分享代码。。。在这个无谓的年华,无论别人多么高高不可攀比,但小编还是选择,做一个适应自己的人。首先打开vscode编辑器,新建一个html文档,里面写入一个外层的div,再加入一行table表格:知道谢每一粒种子,每一缕清风,也知道早起播种和御风而行。然后在上方的style标签中加入css样式,设置table标签的样式,table的元素具有长度自适应性,其长度根据其内…

    2022年9月19日
    1
  • JAVA线程通信详解[通俗易懂]

    JAVA线程通信详解[通俗易懂]目录一、概述二、wait/notify机制三、Condition四、生产者/消费者模式五、线程间的通信——管道六、方法Join的使用一、概述    线程与线程之间不是相互独立的个体,它们彼此之间需要相互通信和协作,最典型的例子就是生产者-消费者问题:当队列满时,生产者需要等待队列有空间才能继续往里面放入商品,而在等待的期间内,生产者必须释放对临界资源(即队列…

    2022年6月19日
    28
  • checkbox选中触发事件_jquery select change事件

    checkbox选中触发事件_jquery select change事件aspx页面部分代码:                                 CommandName=”LookDetail”>        AutoPostBack=”True”>         asdf         asdfasdf         wrwwewewee                          cs部分代码:cs部分代码:///  ///设计器支

    2025年10月26日
    3

发表回复

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

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