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


相关推荐

  • getElementsByTagName_getenumerator

    getElementsByTagName_getenumeratorgetElementsByTagName()方法返回带有指定标签名的节点对象的集合。返回元素的顺序是它们在文档中的顺序。语法:document.getElementsByTagName(Tagn

    2022年8月5日
    8
  • 优秀的程序员真的不写注释吗?

    优秀的程序员真的不写注释吗?我在很多地方看到这样一个观点,“请停止写注释,因为只有烂的代码才需要注释。”这个观点非常巧妙,它让我想起了孟子的一句话,“杨氏为我,是无君也;墨氏兼爱,是无父也。无父无君,是禽兽也。”动不动就骂别人是“禽兽”,我总觉得有点不妥,这很不符合孟子的浩然之气啊。有些大牛也有孟子这样的觉悟,如果有人要他给自己的代码加上注释,就好像是对他的一种侮辱:“我的代码写得这么优雅,你难道看不懂吗?注释是多余的!”我必须得承认,每个程序员都应该有一颗追求“优雅”的心,力争自己的代码更易阅读和理解——不只是针对机器,还有我

    2022年5月30日
    36
  • linux .deb 安装_快速提示:如何在Linux中安装.deb和.tar文件

    linux .deb 安装_快速提示:如何在Linux中安装.deb和.tar文件linux.deb安装Inthisquicktutorial,IexplainhowtoinstallprogramsinLinuxusingterminalcommands.ThisparticulartutorialusesLinuxMint18(Cinnamon64-bit),butthecommandsprovidedbelow…

    2022年5月15日
    55
  • orcle数据库[通俗易懂]

    orcle数据库[通俗易懂]步骤:1、下载安装数据库2、安装plsqldevepor3、使用下面的东西创建表空间和用户使用plsql来orcle创建表空间和用户

    2025年8月4日
    3
  • 深入浅出讲解Optional包装类

    深入浅出讲解Optional包装类Optional是JDK8的新特性,首先这个类是被final修饰的,并且这个类只有一个Object的超类,下面是这个类的结构。我们可以看到一共也没多少方法,所以我觉得就从这个类开始,养成阅读源码的习惯,再合适不过了。Optional的作用在写这篇博客之前,看过好多相关的资料,大体上来说这个类就是用来解决万恶的空指针异常,用来避免繁琐的!=null代码而存在的。那你也太…

    2026年2月6日
    4
  • 使用PHP password_hash()加密,再也不怕被拖库了

    使用PHP password_hash()加密,再也不怕被拖库了

    2022年2月12日
    43

发表回复

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

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