本发明涉及电力,尤其涉及一种海量电力终端的电力数据采集方法、装置和设备。
背景技术:
1、电力信息采集系统,一般由终端、信道和主站等设备组成。终端通过本地通信信道采集到电能表的数据后,通过远程通信信道传输到主站系统。主站系统对数据进行处理和存储,从而实现用户在电量、电压、负荷和用电异常等方面的信息实时在线监测,从而在企业经营中的各个部分的决策和分析提供了支撑,引导用户合理用电,有序用电,促进智能电网发展。
2、相关技术中,电力采集系统获取到电力业务系统下发的电力数据采集任务后,会直接将电力数据采集任务下发给终端进行电力数据的采集,若电力数据采集任务过多时将会导致终端无法及时进行处理,导致数据采集任务的丢弃,因而如何有效的进行电力数据的采集是本领域技术人员亟需解决的技术问题。
技术实现思路
1、针对现有技术中的问题,本发明实施例提供一种电力数据采集方法、装置和设备。
2、具体地,本发明实施例提供了以下技术方案:
3、第一方面,本发明实施例提供了一种海量电力终端的电力数据采集方法,包括:
4、获取电力业务系统下发的多个电力终端的电力数据采集任务;
5、根据所述多个电力终端的电力数据采集任务和所述通信调度模块中的redis分布式缓存的有序集合数据结构,构建各个所述电力终端对应的电力数据采集任务优先级队列;
6、根据各个所述电力终端对应的电力数据采集任务优先级队列,获取各个电力终端的各个电力数据采集任务所对应的电力数据。
7、进一步地,所述根据所述多个电力终端的电力数据采集任务和所述通信调度模块中的redis分布式缓存的有序集合数据结构,构建各个所述电力终端对应的电力数据采集任务优先级队列,包括:
8、根据各个电力终端的各个所述电力数据采集任务的优先级等级和各个所述电力数据采集任务对应的时间戳,确定各个电力终端的各个所述电力数据采集任务的执行优先级分数;
9、根据各个电力终端的各个所述电力数据采集任务的执行优先级分数和通信调度模块中的redis分布式缓存的有序集合数据结构,构建各个电力终端对应的电力数据采集任务优先级队列。
10、进一步地,所述根据各个电力终端的各个所述电力数据采集任务的优先级等级和各个所述电力数据采集任务对应的时间戳,确定各个电力终端的各个所述电力数据采集任务的执行优先级分数,包括:
11、将所述电力数据采集任务的优先级等级,作为所述执行优先级分数的整数部分;
12、将所述电力数据采集任务对应的时间戳,作为所述执行优先级分数的小数部分;
13、根据所述执行优先级分数的整数部分和所述执行优先级分数的小数部分,确定各个电力终端的各个所述电力数据采集任务的执行优先级分数。
14、进一步地,所述根据各个所述电力终端对应的电力数据采集任务优先级队列,获取各个电力终端的各个电力数据采集任务所对应的电力数据,包括:
15、根据各个电力终端对应的电力数据采集任务优先级队列,通过终端问答式通信调度方式从各个电力终端对应的电力数据采集任务优先级队列中读取任务并发送给终端,获取各个电力数据采集任务所对应的电力数据。
16、进一步地,所述根据各个电力终端对应的电力数据采集任务优先级队列,通过终端问答式通信调度方式从各个电力终端对应的电力数据采集任务优先级队列中读取任务并发送给终端,获取各个电力数据采集任务所对应的电力数据,包括:
17、根据各个电力终端对应的电力数据采集任务优先级队列和各个电力终端的电力数据采集任务的并行处理能力,通过终端问答式通信调度方式向各个电力终端下发目标数量个电力数据采集任务,获取各个电力数据采集任务对应的电力数据。
18、进一步地,所述根据各个电力终端对应的电力数据采集任务优先级队列和各个电力终端的电力数据采集任务的并行处理能力,通过终端问答式通信调度方式向各个电力终端下发目标数量个电力数据采集任务,获取各个电力数据采集任务对应的电力数据,包括:
19、步骤a、根据各个电力终端对应的电力数据采集任务优先级队列和各个电力终端的电力数据采集任务的并行处理能力,通过终端问答式通信调度方式向各个所述电力终端下发目标数量个电力数据采集任务;
20、步骤b、基于通信调度模块中的redis分布式缓存的原子性操作,在获取到n个所述电力数据采集任务对应的电力数据后,将所述n个电力数据采集任务从所述电力终端对应的电力数据采集任务优先级队列中删除,更新电力终端对应的电力数据采集任务优先级队列和并发数量标识控制信息,从更新后的电力数据采集任务优先级队列中重新获取n个电力数据采集任务;
21、重复执行步骤a-b,直至所述电力终端对应的电力数据采集任务优先级队列中的电力数据采集任务的数量为零。
22、进一步地,根据电力终端的电力数据采集任务和通信调度模块中的redis分布式缓存的链表list数据结构,构建电力终端对应的电力数据采集的分布式通知消息队列;
23、根据所述电力终端对应的电力数据采集的分布式通知消息队列和所述电力终端对应的电力数据采集任务优先级队列,获取各个电力终端的各个电力数据采集任务对应的电力数据。
24、进一步地,在获取电力业务系统下发的新增的电力数据采集任务的执行优先级分数大于或等于第一阈值的情况下,基于通信调度模块中的redis分布式缓存的原子性操作,获取当前电力数据采集任务优先级队列的长度,并在电力数据采集任务优先级队列的长度等于第二阈值的情况下,返回指示信息和错误码;所述指示信息用于指示电力数据采集任务优先级队列已满;和/或,
25、在获取电力业务系统下发的新增的电力数据采集任务的执行优先级分数小于或等于第三阈值的情况下,基于通信调度模块中的redis分布式缓存的原子性操作,获取电力数据采集任务优先级队列的长度,并在电力数据采集任务优先级队列的长度小于第二阈值的情况下,删除电力数据采集任务优先级队列中的目标电力数据采集任务,插入所述新增的电力数据采集任务;所述目标电力数据采集任务的执行优先级分数小于所述新增的电力数据采集任务的执行优先级分数。
26、第二方面,本发明实施例还提供了一种海量电力终端的电力数据采集装置,包括:
27、获取模块,用于获取电力业务系统下发的多个电力终端的电力数据采集任务;
28、处理模块,用于根据所述多个电力终端的电力数据采集任务和所述通信调度模块中的redis分布式缓存的有序集合数据结构,构建各个所述电力终端对应的电力数据采集任务优先级队列;
29、采集模块,用于根据各个所述电力终端对应的电力数据采集任务优先级队列,获取各个电力终端的各个电力数据采集任务所对应的电力数据。
30、第三方面,本发明实施例还提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述海量电力终端的电力数据采集方法。
31、第四方面,本发明实施例还提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述海量电力终端的电力数据采集方法。
32、第五方面,本发明实施例还提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如第一方面所述海量电力终端的电力数据采集方法。
33、本发明实施例提供的海量电力终端的电力数据采集方法、装置和设备,电力采集系统中的分布式集群架构下的终端问答式通信调度模块通过获取电力业务系统下发的海量电力终端的电力数据采集任务,并利用分布式集群架构下的终端问答式通信调度模块的redis有序集合(sorted set)数据结构特性,就可以存储巨大数量的终端电力数据采集任务队列而不影响访问性能;进而也就可以根据各个电力终端对应的电力数据采集任务优先级队列中各个电力数据采集任务的优先级,向终端下发对应的电力数据采集任务,并在前一个电力数据采集任务响应完成后再下发后续的电力数据采集任务,而不是直接将各个终端对应的所有电力数据采集任务全部进行下发,从而也就避免了电力数据采集任务过多时终端无法及时进行处理,导致数据采集任务丢弃的问题,实现了基于各个电力数据采集任务的优先级进行电力数据采集任务的问答式的有序调度和海量电力终端的电力数据的有效采集。