[发明专利]一种基于队列的电表数据处理方法、系统及电子设备有效
| 申请号: | 202310004130.1 | 申请日: | 2023-01-03 |
| 公开(公告)号: | CN115905268B | 公开(公告)日: | 2023-09-29 |
| 发明(设计)人: | 袁江 | 申请(专利权)人: | 北京力控元通科技有限公司 |
| 主分类号: | G06F16/23 | 分类号: | G06F16/23;G06F16/242;G06F16/2458;G06F16/27;G06F9/54 |
| 代理公司: | 北京高沃律师事务所 11569 | 代理人: | 万慧华 |
| 地址: | 100193 北京市海淀区天秀路10号中*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 队列 电表 数据处理 方法 系统 电子设备 | ||
本发明提供一种基于队列的电表数据处理方法、系统及电子设备,属于数据处理技术领域,方法包括:初始化多个队列;将消息中间件中的电表实时数据分别写入多个队列中;所述消息中间件实时获取电表设备的数据,以得到电表实时数据;各队列中存储部分电表实时数据;采用多线程的方式提取多个队列中的电表实时数据,得到对应每个队列的电表数据;将各电表数据并行写入线程安全队列;采用多线程并行读取所述线程安全队列中的电表数据,并将读取出的电表数据批量写入时序数据库。通过使用多个队列对数据进行缓存,大大提高了数据的吞吐量,使得数据处理的每个步骤互不影响,在异步执行的同时保证了数据有序、安全地入库,提高了电表数据的入库效率。
技术领域
本发明涉及数据处理领域,特别是涉及一种基于队列的电表数据处理方法、系统及电子设备。
背景技术
在设备监控系统中,为了更好的监控电表设备的实时电流、电压等数据,需要对电表设备的数据进行高效、有序以及安全的存储。边缘层中网关通过各种采集协议与电表设备通讯,采集电表设备数据并转发到云服务器的消息中间件,云服务经过数据处理将电表数据存储到时序数据库。
主流的时序数据库在存储以及查询方面做的都很完善,网关采集以及转发电表数据的技术也已经相当成熟,但是在云服务进行数据处理时还是会发生数据处理效率慢,容易丢失数据的问题。从消息中间件中订阅到消息之后,直接写入数据库,这样的写入效率很不理想,而且由于业务需求,需要对数据进行二次处理,会更加延长数据从上传到入库的时间。当每条消息不能高效地消费,会导致消息中间件中的数据积压,从而导致各个客户端连接断开,影响数据上传。
发明内容
本发明的目的是提供一种基于队列的电表数据处理方法、系统及电子设备,可避免消息中间件中的数据积压,提高电表数据的入库效率。
为实现上述目的,本发明提供了如下方案:
一种基于队列的电表数据处理方法,包括:
初始化多个队列;
将消息中间件中的电表实时数据分别写入多个队列中;所述消息中间件实时获取电表设备的数据,以得到电表实时数据;各队列中存储部分电表实时数据;
采用多线程的方式提取多个队列中的电表实时数据,得到对应每个队列的电表数据;
将各电表数据并行写入线程安全队列;
采用多线程并行读取所述线程安全队列中的电表数据,并将读取出的电表数据批量写入时序数据库。
可选地,所述电表实时数据包括实时电流及实时电压。
可选地,所述将消息中间件中的电表实时数据分别写入多个队列中,具体包括:
启动多个客户端,并建立各客户端与消息中间件的通讯连接;客户端的数量与队列的数量相同,且每个客户端对应一个队列;
通过消息中间件将电表实时数据分发到每个客户端上;每个客户端存储部分电表实时数据;
各客户端将对应的电表实时数据写入对应的队列中。
可选地,所述采用多线程的方式提取多个队列中的电表实时数据,得到对应每个队列的电表数据,具体包括:
初始化一个线程池,并启动多个核心线程;所述核心线程的数量与队列的数量相同,且每个核心线程对应一个队列;
每隔设定时间间隔,将多个队列同时提交到所述线程池中;
针对任一队列,通过与所述队列对应的核心线程从所述队列中读取电表实时数据,并将读取出的电表实时数据转换为字符串数据,得到对应所述队列的电表数据。
可选地,所述线程安全队列为有界阻塞队列。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京力控元通科技有限公司,未经北京力控元通科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202310004130.1/2.html,转载请声明来源钻瓜专利网。





