电鸭
15人浏览/7人投稿
1小时前
待托管赏金
以多线程连接的方式进行数据订阅
将上一步收到的数据,以任务的方式转发给解析线程池(解析线程池需要实现,可以给代码参考)
解析线程池会将解析的数据存文件,同时将一些重要的信息存数据库
这两步要异步化处理,避免其中一个卡住导致其他也卡住
解析出来的时间,如果匹配上关键时间点,应该将这个时间点信息发送到radis中(解算出来的时间和解算间隔时间符合时,把设备的编号,数据开始时,结束时间发送到radis的一个消息队列中)
设备的一些配置信息在数据库中的定时加载(加载到内存,向网关订阅数据)
加载的重点内容有设备ID(SOCC_DEVICE.ID_),设备SN(SOCC_DEVICE.SN_NO),解算时间间隔(SOCC_DEVICE.PRO_INTERVAL),GPS数据存储间隔(gpsDataInteval)
解码格式只考虑RTCM3
统计入库的有哪些字段,入库的字段有哪些内容:
SOCC_DEVICE
最后接收数据时间Last_Obs_ReceiveTime
电池电压 SOL_V
太阳能电压 BAT_V
卫星数 SAT_NUM
SIM卡号 SIM_NO
SOCC_DEVICE_STATE
太阳能电压SOL_VOL 、电池电压 BAT_VOL、平均卫星数sat_avg、总卫星数SAT_NUM_ALL、历元总数epochs_total
倾角传感器 SOCC_QINGJIAO_DATA2
Device_id,X,Y,DATA_TIME,A,DA,uploaded
功能都存在c++代码参考,需要对功能重写,把功能都进行异步化处理,需要用GO语言重写
验收的方法订阅1W台设备跑一周,不崩溃,数据丢失率控制在千万分之一,架构需要按照描述的需要进行异步操作不发生阻塞