|
|
@ -0,0 +1,64 @@ |
|
|
|
|
|
@startuml |
|
|
|
|
|
'https://plantuml.com/sequence-diagram |
|
|
|
|
|
|
|
|
|
|
|
participant Events as event |
|
|
|
|
|
participant DataTransferListener as entrance |
|
|
|
|
|
participant TsKvEventServiceImpl as eventSvc |
|
|
|
|
|
participant TsKvService as tskvSvc |
|
|
|
|
|
participant 其他服务或监听器 as os |
|
|
|
|
|
|
|
|
|
|
|
== 事件统一入口 == |
|
|
|
|
|
event -> entrance: push事件 |
|
|
|
|
|
|
|
|
|
|
|
== 根据主题处理不同事件 == |
|
|
|
|
|
entrance -> eventSvc: push【latest】或【history】事件 |
|
|
|
|
|
note over eventSvc: 处理topic包含v1/tskv的事件 |
|
|
|
|
|
note over eventSvc: 【latest】或【history】事件处理 |
|
|
|
|
|
alt #LightBlue latest 事件 |
|
|
|
|
|
eventSvc -> tskvSvc: 【async】saveProtoLatest:将推送来的数据去重、新增最新数据 |
|
|
|
|
|
||| |
|
|
|
|
|
else #Lavender history 事件 |
|
|
|
|
|
eventSvc -> tskvSvc: saveProtoTsKv:存储所有推送来的数据 |
|
|
|
|
|
eventSvc -> tskvSvc: 【async】saveProtoLatest:将推送来的数据去重、新增最新数据 |
|
|
|
|
|
||| |
|
|
|
|
|
end |
|
|
|
|
|
||| |
|
|
|
|
|
eventSvc -> os: 执行物计算(push CalcLogSaveEvent) |
|
|
|
|
|
eventSvc -> os: 执行过滤引擎(push FilterLogSaveEvent) |
|
|
|
|
|
||| |
|
|
|
|
|
eventSvc -> eventSvc: 读application.yml配置中的属性列表:keys |
|
|
|
|
|
eventSvc -> eventSvc: 将keys中的每个基础属性添加am后缀,形成新的属性列表amKeys |
|
|
|
|
|
||| |
|
|
|
|
|
loop dataProtoList |
|
|
|
|
|
alt #LightBlue 如果是基础属性,且>0 |
|
|
|
|
|
eventSvc -> eventSvc: 将dataProto添加到dataProtos |
|
|
|
|
|
||| |
|
|
|
|
|
else #Lavender 如果是am属性 |
|
|
|
|
|
eventSvc -> eventSvc: 将dataProto添加到amList |
|
|
|
|
|
||| |
|
|
|
|
|
else #Gray 其他 |
|
|
|
|
|
eventSvc -> eventSvc: 丢弃 |
|
|
|
|
|
end |
|
|
|
|
|
end |
|
|
|
|
|
||| |
|
|
|
|
|
alt #LightBlue dataProtos非空 |
|
|
|
|
|
eventSvc -> tskvSvc: 【async】amSumProtos(dataProtos); |
|
|
|
|
|
||| |
|
|
|
|
|
else #Lavender amList非空 |
|
|
|
|
|
eventSvc -> tskvSvc: hhDdMmYySum(amList); |
|
|
|
|
|
||| |
|
|
|
|
|
eventSvc -> os: 峰平谷尖计算(push PeakEvent) |
|
|
|
|
|
||| |
|
|
|
|
|
end |
|
|
|
|
|
||| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@enduml |