datax(16):源码解读AbstractReporter
之前介绍了通信类communication,容器类container,communication的收集类collector,今天再看一个报告类Reporter;
一、概述AbstractReporter
- 主要作用:Reporter的主要功能是将收集到的信息上报给上级
- 主要方法: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*/@Overridepublic void reportJobCommunication(Long jobId, Communication communication) {// do nothing}/*** 将TaskGroupContainer的信息汇报给上级,操作也很简单直接更新注册时分配给该TaskGroup的Communication(Map中的值)** @param taskGroupId Integer* @param communication Communication*/@Overridepublic void reportTGCommunication(Integer taskGroupId, Communication communication) {LocalTGCommunicationManager.updateTaskGroupCommunication(taskGroupId, communication);}
注:
对源码进行略微改动,主要修改为 1 阿里代码规约扫描出来的,2 clean code;
所有代码都已经上传到github(master分支和dev),可以免费白嫖
datax(16):源码解读AbstractReporter相关推荐
- datax(10): 源码解读Communication(Datax通讯类)
前面看了datax的通讯机制,继续看源码-具体的通讯类 Communication.根据datax的运行模式的区别, 数据的收集会有些区别,这篇文章都是讲的在standalone模式下. 一.comm ...
- Ubuntu 16.04下Caffe-SSD的应用(四)——ssd_pascal.py源码解读
前言 caffe-ssd所有的训练时的参数,全部由ssd_pascal.py来定义,之后再去调用相关的脚本和函数,所以想要训练自己的数据,首先要明白ssd_pascal.py各个定义参数的大体意思. ...
- PostgreSQL 源码解读(31)- 查询语句#16(查询优化-表达式预处理#1)
本节简单介绍了PG查询优化对表达式预处理中连接Var(RTE中的Var,其中RTE_KIND=RTE_JOIN)溯源的过程.处理逻辑在主函数subquery_planner中通过调用flatten_j ...
- Bert系列(二)——源码解读之模型主体
本篇文章主要是解读模型主体代码modeling.py.在阅读这篇文章之前希望读者们对bert的相关理论有一定的了解,尤其是transformer的结构原理,网上的资料很多,本文内容对原理部分就不做过多 ...
- PyTorch 源码解读之即时编译篇
点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 作者丨OpenMMLab 来源丨https://zhuanlan.zhihu.com/ ...
- AFNetworking 3.0 源码解读(一)之 AFNetworkReachabilityManager
做ios开发,AFNetworking 这个网络框架肯定都非常熟悉,也许我们平时只使用了它的部分功能,而且我们对它的实现原理并不是很清楚,就好像总是有一团迷雾在眼前一样. 接下来我们就非常详细的来读一 ...
- Java Review - LinkedHashMap LinkedHashSet 源码解读
文章目录 Pre 概述 数据结构 类继承关系 构造函数 方法 get() put() remove() LinkedHashSet 使用案例 - FIFO策略缓存 Pre Java Review - ...
- Java Review - HashMap HashSet 源码解读
文章目录 概述 HashMap结构图 构造函数 重点方法源码解读 (1.7) put() get() remove() 1.8版本 HashMap put resize() 扩容 get HashSe ...
- Java Review - Queue和Stack 源码解读
文章目录 Pre 概述 Queue Deque ArrayDeque 一览 构造函数 属性 方法 addFirst() addLast() pollFirst() pollLast() peekFir ...
最新文章
- Bash的基础知识man手册
- 利用vagrant快速搭建rails开发环境
- 一张图搞清楚Java异常机制
- vmware 克隆centos 6.4网卡不识别
- VS2010 + OpenCV2.3配置 ; 在VS2010下安装配置OpenCV2.3 ; 全程截图,绝对能配置好,不能的留言!...
- mui实现手机web前端拍照_Web前端中的常见技术名称及所实现的功能
- mysql 5.6 修改默认字符集_mysql5.6修改默认字符集
- php判断手机 跳转代码,php判断客户端是手机设备然后跳转到手机站
- 18 比较数组找出最大两个数
- 大型WEB系统架构的那些组成
- 13款最佳免费网络监控工具,网站监控软件的总结。
- 并查集【算法笔记/晴神笔记】
- 深度神经网络主要模型,深度神经网络预测模型
- C4D中常用材质的创建与赋予
- 面向CRAN的5G前传方案研究
- 【C51】单片机芯片之——图解74HC595
- Unity接入心知天气,获取当前城市天气状况
- python电影爬虫背景介绍_Python爬虫入门教程01之爬取豆瓣Top电影
- PDPS教程:机器人气动点焊焊枪大开与小开运动状态自动切换设置
- OSINT 常用信息收集策略