采集数据的任务-责任链的执行
在上一章中讲到了数据采集的处理器执行过程,在此过程中涉及到了 采集、计算、保存、升级维度 四个过程,使用责任链模式串联了起来执行
本章会详细讲解责任链的具体执行过程
数据采集的处理器
org.javaup.handler.core.data.impl.GatherDataHandler#dataHandle
public RuleHandleOutput dataHandle(TotalParamTransfers totalParamTransfers){
//使用责任链进行数据的处理,包括:采集、计算、保存、升级维度等
dataChainContext.getDataChainHandler().executeChain(totalParamTransfers);
return null;
}
- 责任链执行在
GatherDataHandler.dataHandle
:调用DataChainContext
获取链头后,串行执行各节点。 - 链构建在
DataChainContext.init
:启动时收集所有链节点、按order()
排序并串起来。 - 节点职责由若干
AbstractDataChainHandler
子类各自实现,按顺序覆盖“采集/计算/保存/升级维度”。
接下来,我会按照 “入口 → 进入链 → 构建链 → 节点职责 → 逐步时序” 的顺序展开。
业务入口:规则处理与参数装配
public RuleHandleOutput handle(ParamTransfers paramTransfers){
//省略...
//数据处理器执行
return dataHandler.dataHandle(totalParamTransfers);
}
通过规则类型路由到具体 DataHandler
(采集或查询)。
进入责任链:GatherDataHandler.dataHandle
@Override
public RuleHandleOutput dataHandle(TotalParamTransfers totalParamTransfers){
//使用责任链进行数据的处理,包括:采集、计算、保存、升级维度等
dataChainContext.getDataChainHandler().executeChain(totalParamTransfers);
return null;
}
- 关键点
- 这里不做业务处理,仅将装配好的
totalParamTransfers
交给链头,触发整条链依次执行。 - 返回值在当前实现为
null
,说明处理结果以“副作用”(如落库/发消息)为主。
- 这里不做业务处理,仅将装配好的