状态服务流程
2024-01-05 14:43:13 0 举报
状态服务流程
作者其他创作
大纲/内容
设备在离线状态改变,入队列
根据时间判断是否离线
判断设备状态,走设备离线逻辑
设备状态
初始化实时数据存储队列(REAL_TIME_DATE_QUEUE_MAP)
接收实时数据
是
查询在线监测设备类型id
reidis缓存:zxjc:realTimeData:节点id
Redis緩存:zxjc:nodeInfo:节点id
定时任务
节点状态为在线:1
查询设备下的节点
处理完节点状态,再处理设备状态
设备在离线队列:DEV_STATUS_QUEU
500/5s处理一次队列中的信息
根据变电站ID hash 取模 存放在实时数据队列中
节点状态推送:qif/zf/app/acnodestatus/
更新数据库设备状态
topic:qif/zxjc/realdata
推送节点状态消息
循环设备下的节点,查询设备下的节点状态,有一个节点为离线,退出循环,设备就为离线状态
查询设备节点关系
默认24小时,如果有离线状态时间配置,以配置时间为准
插入节点变化的log日志表
查询节点状态缓存
存在节点状态缓存并且状态发生变化则放入队列
查询设备的在离线状态
实时数据,节点当前状态默认为1,在线队列:节点在离线队列-NODE_STATUS_QUEUE
查询节点信息缓存,缓存中包含离线状态时间配置
查询节点实时数据缓存
是否存在实时数据
每天凌晨1分 计算不含实时数据得设备置为离线任务
redis缓存:zxjc:devsStatus:设备id表:ac_devinfo
查询节点状态
初始节点节点在离线队列(NODE_STATUS_QUEUE)
否
初始化离线处理队列(OFF_LINE_DATE_QUEUE_MAP)
更新数据库节点状态
刷新设备在离线缓存
刷新实时数据缓存
2
1
节点状态
前两个队列处理的结果,如果节点状态发生变化,会放入到此队列中
查询没有实时数据的节点
刷新节点状态
更新is_only_yt_yk_node = 1
每5分钟执行一次
Redis緩存:zxjc:nodesStatus:节点id
插入设备变化的log日志表
根据变电站ID hash 取模 存放在离线处理队列中
设备下只存在遥控和摇调的节点设备
节点不存在实时数据则置为离线
redis缓存:zxjc:devTypeIds
节点离线
前两个队列处理的结果,如果设备状态发生变化,会放入到此队列中
设备离线
根据设备类型查询出所有设备及设备下的节点信息
0 条评论
下一页