电表数据处理方法、装置、计算机设备和存储介质与流程

未命名 07-17 阅读:121 评论:0


1.本技术涉及电力技术领域,特别是涉及一种电表数据处理方法、装置、计算机设备、存储介质和计算机程序产品。


背景技术:

2.随着电力信息系统的建设与完善,出现了电表数据采集技术,电表采集技术是指采集电力信息系统中各个电表的电表数据,并将数据传输至相应的系统中。
3.然而,传统方法是通过人工实现电表数据的采集与传输,人工处理电表数据的方式费时费力,存在电表数据处理效率低的问题。


技术实现要素:

4.基于此,有必要针对上述技术问题,提供一种能够提高电表数据处理效率的电表数据处理方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
5.本技术提供了一种电表数据处理方法。所述方法包括:
6.创建多个电表分别对应的终端对象;终端对象用于采集电表的电表数据;
7.获取多个服务器分别对应的当前负载率,基于各个当前负载率,将各个终端对象分别与对应的服务器进行连接;
8.基于终端对象所连接的服务器对应的句柄红黑树,创建终端对象对应的终端句柄,并将创建的终端句柄加入对应的句柄红黑树;
9.基于终端对象对应的终端句柄,将终端对象采集的电表数据写入终端对象所连接的服务器对应的内存池中。
10.本技术还提供了一种电表数据处理装置。所述装置包括:
11.终端对象创建模块,用于创建多个电表分别对应的终端对象;终端对象用于采集电表的电表数据;
12.终端对象连接模块,用于获取多个服务器分别对应的当前负载率,基于各个当前负载率,将各个终端对象分别与对应的服务器进行连接;
13.终端句柄创建模块,用于基于终端对象所连接的服务器对应的句柄红黑树,创建终端对象对应的终端句柄,并将创建的终端句柄加入对应的句柄红黑树;
14.电表数据写入模块,用于基于终端对象对应的终端句柄,将终端对象采集的电表数据写入终端对象所连接的服务器对应的内存池中。
15.一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述电表数据处理方法的步骤。
16.一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述电表数据处理方法的步骤。
17.一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时实现上述电表数据处理方法的步骤。
18.上述电表数据处理方法、装置、计算机设备、存储介质和计算机程序产品,通过为各个电表分别创建相应的终端对象,基于终端对象采集电表的电表数据。进而获取各个服务器分别对应的当前负载率,基于各个当前负载率确定各个终端对象分别连接的服务器,能够充分利用各个服务器资源,从而提高电表数据处理的效率。基于终端对象所连接的服务器对应的句柄红黑树,创建终端对象对应的终端句柄,将各个终端对象对应的终端句柄加入对应的红黑树,并基于终端对象对应的终端句柄,将终端对象采集的电表数据写入终端对象所连接的服务器对应的内存池中。为各个终端对象创建对应的终端句柄,并加入对应的句柄红黑树,基于句柄红黑树,对句柄红黑树中各个终端句柄分别对应的终端对象进行管理,能够有效提高电表数据的查询效率和电表数据的读写效率,从而提高电表数据处理效率。
附图说明
19.图1为一个实施例中电表数据处理方法的应用环境图;
20.图2为一个实施例中电表数据处理方法的流程示意图;
21.图3为一个实施例中处理内核任务的流程示意图;
22.图4为一个实施例中选择通信对象模型的流程示意图;
23.图5为一个实施例中电表数据处理的示意图;
24.图6为一个实施例中电表数据处理装置的结构框图;
25.图7为另一个实施例中电表数据处理装置的结构框图;
26.图8为一个实施例中计算机设备的内部结构图;
27.图9为另一个实施例中计算机设备的内部结构图。
具体实施方式
28.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
29.本技术实施例提供的电表数据处理方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能电视、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。终端102以及服务器104可以通过有线或无线通信方式进行直接或间接地连接,本技术在此不做限制。
30.终端和服务器均可单独用于执行本技术实施例中提供的电表数据处理方法。
31.例如,终端创建多个电表分别对应的终端对象,终端对象用于采集电表的电表数据。终端获取多个服务器分别对应的当前负载率,基于各个当前负载率,将各个终端对象分别与对应的服务器进行连接。终端基于终端对象所连接的服务器对应的句柄红黑树,创建终端对象对应的终端句柄,并将创建的终端句柄加入对应的句柄红黑树。终端基于终端对
象对应的终端句柄,将终端对象采集的电表数据写入终端对象所连接的服务器对应的内存池中。
32.终端和服务器也可协同用于执行本技术实施例中提供的电表数据处理方法。
33.例如,终端向服务器发送电表数据处理请求,服务器基于电表数据处理请求,创建多个电表分别对应的终端对象,终端对象用于采集电表的电表数据。服务器获取多个服务器分别对应的当前负载率,基于各个当前负载率,将各个终端对象分别与对应的服务器进行连接。服务器基于终端对象所连接的服务器对应的句柄红黑树,创建终端对象对应的终端句柄,并将创建的终端句柄加入对应的句柄红黑树。服务器基于终端对象对应的终端句柄,将终端对象采集的电表数据写入终端对象所连接的服务器对应的内存池中。服务器将获取到的电表数据发送至终端,终端可以将电表数据进行展示,也可以基于电表数据对相关的电表数据处理任务进行响应。
34.在一个实施例中,如图2所示,提供了一种电表数据处理方法,以该方法应用于计算机设备为例进行说明,计算机设备可以是终端或服务器,由终端或服务器自身单独执行,也可以通过终端和服务器之间的交互来实现。电表数据处理方法包括以下步骤:
35.步骤s202,创建多个电表分别对应的终端对象;终端对象用于采集电表的电表数据。
36.其中,终端对象是指用于监测电表数据和电表运作状态的软件程序,不同类型的电表对应不同的终端对象,电表对应的终端对象能够适应电表功能,全面地采集电表中记录的各项电力数据。电表数据是指电表记录的电力数据,包括但不限于用电量、电压、电流、功率等中的至少一者。
37.示例性地,计算机设备基于各个电表对应的电表类型,为各个电表分别创建对应的终端对象,基于终端对象对电表的电表数据进行采集。将各个终端对象分别与对应的服务器进行连接,在终端对象采集到相应的电表数据后,将采集的电表数据写入服务器的内存池中。
38.步骤s204,获取多个服务器分别对应的当前负载率,基于各个当前负载率,将各个终端对象分别与对应的服务器进行连接。
39.其中,当前负载率是指目前服务器的实际负荷与最高负荷之间的比值。
40.示例性地,计算机设备获取各个服务器分别对应的当前负载率,对比各个服务器分别对应的当前负载率,确定各个终端对象分别对应的服务器,并将各个终端对象分别与对应的服务器进行连接。
41.步骤s206,基于终端对象所连接的服务器对应的句柄红黑树,创建终端对象对应的终端句柄,并将创建的终端句柄加入对应的句柄红黑树。
42.其中,句柄红黑树是指用于组织管理数据的一种数据结构,句柄红黑树中的结点为终端对象的终端句柄,基于句柄红黑树可以对各个终端对象进行管理。终端句柄是指终端对象对应的标识。
43.示例性地,计算机设备获取单个终端对象所连接的服务器对应的句柄红黑树,基于句柄红黑树中的各个终端句柄,创建单个终端对象对应的终端句柄,并将单个终端对象对应的终端句柄加入对应的句柄红黑树中。用相同的方法,创建其他各个终端对象分别对应的终端句柄,并将其他各个终端对象的终端句柄分别加入对应的句柄红黑树,使得各个
终端对象分别对应的终端句柄均加入对应的句柄红黑树。
44.步骤s208,基于终端对象对应的终端句柄,将终端对象采集的电表数据写入终端对象所连接的服务器对应的内存池中。
45.示例性地,计算机设备获取单个终端对象采集的电表数据,并基于该终端对象对应的终端句柄确定终端对象在服务器内存池中对应的存储空间,进而将终端对象采集的电表数据写入服务器内存池中对应的存储空间内。用相同的方法,将其他各个终端对象采集的电表数据分别写入对应的服务器内存池中,使得各个终端对象分别采集的电表数据均写入对应的内存池中。
46.上述电表数据处理方法中,通过为各个电表分别创建相应的终端对象,基于终端对象采集电表的电表数据。进而获取各个服务器分别对应的当前负载率,基于各个当前负载率确定各个终端对象分别连接的服务器,能够充分利用各个服务器资源,从而提高电表数据处理的效率。基于终端对象所连接的服务器对应的句柄红黑树,创建终端对象对应的终端句柄,将各个终端对象对应的终端句柄加入对应的红黑树,并基于终端对象对应的终端句柄,将终端对象采集的电表数据写入终端对象所连接的服务器对应的内存池中。为各个终端对象创建对应的终端句柄,并加入对应的句柄红黑树,基于句柄红黑树,对句柄红黑树中各个终端句柄分别对应的终端对象进行管理,能够有效提高电表数据的查询效率和电表数据的读写效率,从而提高电表数据处理效率。
47.在一个实施例中,获取多个服务器分别对应的当前负载率,包括:
48.获取各个服务器分别对应的当前连接数和最大连接数;将同一服务器对应的当前连接数和最大连接数之间的比值作为服务器对应的当前负载率,得到各个服务器分别对应的当前负载率。
49.其中,当前连接数是指服务器当前连接的终端对象的数量,可以表征服务器当前的实际负荷。最大连接数是指服务器可以连接的终端对象的最大数量,可以表征服务器能够承载的最高负荷。
50.示例性地,计算机设备获取各个服务器分别对应的当前连接数和最大连接数。计算同一服务器对应的当前连接数和最大连接数之间的比值,得到该服务器对应的当前负载率,用相同的方法,计算其他各个服务器分别对应的当前负载率,得到各个服务器分别对应的当前负载率。
51.上述实施例中,通过获取各个服务器分别对应的当前连接数和最大连接数,将同一服务器对应的当前连接数和最大连接数之间的比值作为服务器对应的当前负载率。同一服务器对应的当前连接数和最大连接数之间的比值可以准确地反映该服务器对应的当前负载率,基于各个当前负载率确定各个终端对象分别连接的服务器,能够充分利用各个服务器资源,从而提高电表数据处理的效率。
52.在一个实施例中,基于各个当前负载率,将各个终端对象分别与对应的服务器进行连接,包括:
53.从各个终端对象中确定当前终端对象;将当前负载率最小值对应的服务器作为目标服务器;将当前终端对象与目标服务器进行连接;更新目标服务器对应的当前负载率;返回从各个终端对象中确定当前终端对象的步骤执行,直至各个终端对象均与对应的服务器连接。
54.其中,目标服务器为基于各个服务器分别对应的当前负载率确定的与当前终端对象连接的服务器。
55.示例性地,计算机设备从各个终端对象中确定当前终端对象。对比各个服务器分别对应的当前负载率,将当前负载率最小值对应的服务器作为当前终端对象对应的目标服务器,将当前终端对象与目标服务器进行连接。更新目标服务器对应的当前连接数,基于目标服务器对应的当前连接数和最大连接数之间的比值,更新目标服务器对应的当前负载率。返回从各个终端对象中确定当前终端对象的步骤执行,直至各个终端对象均与对应的服务器连接。
56.在一个实施例中,计算机设备可以给各个终端对象分别设置对应的优先级。例如,基于终端对象对应的电表所处地理区域的重要程度,确定终端对象对应的优先级;基于终端对象对应的电表在电力系统中的重要程度,确定终端对象对应的优先级;基于终端对象记录的电表数据在相应的数据处理任务中的紧急程度,确定终端对象对应的优先级;等等。在从各个终端对象中确定当前终端对象时,基于各个终端对象分别对应的优先级,确定当前终端对象。例如,可以直接将优先级最高的终端对象作为当前终端对象;可以综合优先级和其他影响因素,从各个终端对象中确定当前终端对象;等等。
57.上述实施例中,基于各个终端对象分别对应的优先级,从各个终端对象中确定当前终端对象,可以使得优先级较高的终端对象能够先与对应的目标服务器进行连接,由于高优先级的终端对象采集的电表数据在电表数据处理任务中往往具有较高的重要程度,因此基于终端对象对应的优先级来确定当前终端对象,可以保证电表数据处理的可靠性。进而,将当前终端对象与当前负载率最小值对应的服务器进行连接,能够充分利用各个服务器资源,从而提高电表数据处理的效率。
58.在一个实施例中,电表数据处理方法还包括:
59.将终端对象采集的电表数据写入终端对象所连接的服务器对应的内存池后,断开终端对象与对应的服务器之间的连接。
60.示例性地,计算机设备获取到终端对象采集的电表数据,并将终端对象采集的电表数据写入终端对象所连接的服务器对应的内存池后,断开终端对象与服务器之间的连接。
61.上述实施例中,在将终端对象采集的电表数据写入终端对象所连接的服务器对应的内存池后,断开终端对象与对应的服务器之间的连接,能够有效节省计算机资源,提高计算机资源的利用率。在该终端对象再次与服务器进行连接时,能够根据当时各个服务器分别对应的当前负载率,将终端对象与当前负载率最小值对应的服务器进行连接,使得各个服务器资源得到充分利用,从而提高电表数据处理的效率。
62.在一个实施例中,电表数据处理方法还包括:
63.为各个终端对象分别创建对应的监听线程;基于各个监听线程,通过各个终端对象并行监听各个电表的电表运作。
64.其中,监听线程是指用于监听终端对象采集的电表运作状态的线程。电表运作是指电表运作情况,包括电表状态和电表数据,电表状态包括正常运作状态、故障状态、待机状态等。
65.示例性地,计算机设备在为各个电表分别创建对应的终端对象时,同时为各个终
端对象分别创建对应的监听线程。基于各个监听线程,并行监听各个终端对象分别采集的电表状态和电表数据等信息。
66.上述实施例中,通过给各个终端对象分别创建对应的监听线程,能够实现并行监听各个电表的电表运作,大大提高了电表数据采集和数据传输的效率,能够保证电表数据的时效性。
67.在一个实施例中,电表数据处理方法还包括:
68.获取异步读请求队列;从异步读请求队列中确定目标异步读请求,确定目标异步读请求对应的目标终端句柄;基于目标终端句柄从对应的内存池中读取电表数据;当读取到的电表数据为空时,向目标终端句柄关联的终端对象发送电表数据采集请求;基于目标终端句柄再次从对应的内存池中读取电表数据。
69.其中,异步读请求是指读取电表数据的异步请求。异步读请求队列是指由先后接收到的各个电表数据异步读请求组成的队列。电表数据采集请求是指向终端对象发送的请求,用于请求终端对象立即进行电表数据采集操作。
70.示例性地,计算机设备获取异步读请求队列,从异步读请求队列中的各个异步读请求中确定目标异步读请求,确定目标异步读请求所需的各个电表数据以及各个电表数据分别对应的终端句柄,将上述各个电表数据分别对应的终端句柄作为目标异步读请求对应的各个目标终端句柄。基于各个目标终端句柄,从对应的内存池中读取相应的电表数据。当基于目标终端句柄读取到的电表数据为空时,向该目标终端句柄关联的终端对象发送数据采集请求,并基于该目标终端句柄再次从对应的内存池中读取电表数据。
71.在一个实施例中,计算机设备可以给各个异步读请求分别设置对应的优先级。例如,记录接收到异步读请求的时间,给接收时间越早的异步读请求赋予越高的优先级;确定异步读请求中所需电表数据的数量,给所需电表数据的数量越少的异步读请求赋予越高的优先级;确定异步读请求的预计处理时间,给预计处理时间越短的异步读请求赋予越高的优先级;等等。基于各个异步读请求分别对应的优先级,从异步读请求队列中的各个异步读请求中确定目标异步读请求。
72.上述实施例中,基于各个异步读请求分别对应的优先级,在各个异步读请求中确定目标异步读请求,能够使得优先级较高的异步读请求优先被响应。确定目标异步读请求对应的各个目标终端句柄,并基于各个目标终端句柄从对应的内存池中读取相应的电表数据,能够有效提高电表数据读取的效率,从而提高电表数据处理效率。当读取到的电表数据为空时,向该目标终端句柄关联的终端对象发送数据采集请求,使得终端对象能够及时地再次采集电表数据,大大减小了电表数据采集异常对电表数据处理的影响,从而提高电表数据处理的效率。
73.在一个实施例中,如图3所示,电表数据处理方法还包括:
74.步骤s302,获取当前服务器对应的内核任务。
75.步骤s304,将内核任务对应的补充数据传输到当前服务器的内存池中。
76.步骤s306,基于当前服务器的内存池中的电表数据和补充数据,在当前服务器的内存池中处理内核任务,得到对应的处理结果。
77.其中,当前服务器为各个服务器中的任意一个服务器。内核任务是指基于内核空间的消息传递,以及直接在内存池中进行的数据处理来实现的电表数据处理任务,例如,内
核任务可以为电表数据分析、电表告警回应、电表状态分析等。补充数据是指不包含在内存池中的,完成内核任务所需的其他数据,例如,当内核任务为电表告警回应时,补充数据为电表告警信息;当内核任务为电表状态分析时,补充数据为电表状态信息;等等。
78.示例性地,计算机设备获取当前服务器对应的内核任务,确定内核任务所需的补充数据,并获取相应的补充数据,将补充数据写入当前服务器的内存池中。基于当前服务器的内存池中的电表数据与补充数据,在当前服务器的内存池中进行相应的数据处理,从而完成内核任务,得到相应的处理结果。
79.上述实施例中,在获取到当前服务器对应的内核任务后,将内核任务对应的补充数据传输到当前服务器的内存池中。基于当前服务器的内存池中的电表数据和补充数据,在服务器的内存池中处理内核任务,由于各个电表数据均存储在内存池中,因此在内存池中处理任务,能够减少大量数据传输的时间,从而提高电表数据处理的效率。
80.在一个具体的实施例中,本技术的电表数据处理方法可以应用于电力系统中对各个电表进行抄表作业。电表数据处理方法包括以下步骤:
81.1、连接服务器
82.电力系统给各个电表分别创建对应的终端对象,并获取系统中各个服务器分别对应的当前负载率,基于各个当前负载率,将各个终端对象分别与对应的服务器进行连接。如图4所示,当存在n个终端对象待连接时,电力系统基于最小连接计算来进行算法调度选择,进而选择最佳的通信对象模型。最小连接计算是指通过获取各个服务器分别对应的当前连接数和最大连接数,将同一服务器对应的当前连接数和最大连接数之间的比值作为服务器对应的当前负载率,得到各个服务器分别对应的当前负载率,从各个当前负载率中确定最小值。通信对象模型选择是指将当前负载率最小值对应的服务器作为目标服务器,将当前终端对象与目标服务器进行连接,得到当前通信对象模型。基于当前通信对象模型进行回调,即返回获取各个服务器分别对应的当前连接数和最大连接数的步骤执行,直至各个终端对象均与对应的服务器连接。
83.电力系统获取单个终端对象所连接的服务器对应的终端句柄红黑树,基于终端句柄红黑树中的各个终端句柄,创建单个终端对象对应的终端句柄,并将单个终端对象对应的终端句柄加入对应的终端句柄红黑树中。用相同的方法,创建其他各个终端对象分别对应的终端句柄,并将其他各个终端对象的终端句柄分别加入对应的终端句柄红黑树,使得各个终端对象分别对应的终端句柄均加入对应的终端句柄红黑树。
84.2、采集电表数据
85.电力系统为各个终端对象分别创建对应的终端监听线程。基于各个监听线程,并行监听各个终端对象分别采集的电表状态和电表数据等信息。基于终端对象对应的终端句柄,将终端对象采集的电表数据写入终端对象所连接的服务器对应的内存池中,并触发断开事件,即断开终端对象与服务器之间的连接。
86.3、响应异步读请求
87.电力系统获取异步读请求队列,从异步读请求队列中确定目标异步读请求,确定目标异步读请求对应的目标终端句柄。基于目标终端句柄从对应的内存池中读取电表数据,当读取到的电表数据为空时,向目标终端句柄关联的终端对象发送电表数据采集请求,并基于目标终端句柄再次从对应的内存池中读取电表数据。
88.上述实施例中,如图5所示,首先为各个电表(电表数据采集终端)创建对应的终端对象和终端监听线程,并将各个终端对象分别与对应的服务器进行连接。基于终端对象所连接的服务器中的终端句柄红黑树,为终端对象创建对应的终端句柄,并将终端对象对应的终端句柄加入到终端句柄红黑树中。进而基于终端句柄关联对应的终端对象,基于终端对象对应的终端监听线程获取到电表数据后,将电表数据写入终端对象所连接的服务器的数据内存池中,并触发断开事件,断开终端对象与服务器之间的连接。此外基于获取到的异步读请求队列,确定目标异步读请求,并触发读事件,基于目标异步读请求对应的目标终端句柄,从对应的数据内存池中读取电表数据,基于读取的电表数据,完成相应的功能,例如,报文解析、电表告警回应、心跳回应、终端状态分析、数据转发等功能。使用异步通信技术以及多线程管理通信模型的处理机制,实现了高并发异步通讯和高效能抄表,大大提高的电表数据处理效率。充分发挥了多核计算机的并行处理优势,实现多线程事件捕捉能力,同时通过最小连接计算确定最佳的通信对象模型,使系统资源得到充分利用,能够满足海量数据接入的需求。
89.应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
90.基于同样的发明构思,本技术实施例还提供了一种用于实现上述所涉及的电表数据处理方法的电表数据处理装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个电表数据处理装置实施例中的具体限定可以参见上文中对于电表数据处理方法的限定,在此不再赘述。
91.在一个实施例中,如图6所示,提供了一种电表数据处理装置,包括:终端对象创建模块602、终端对象连接模块604、终端句柄创建模块606和电表数据写入模块608,其中:
92.终端对象创建模块602,用于创建多个电表分别对应的终端对象;终端对象用于采集电表的电表数据。
93.终端对象连接模块604,用于获取多个服务器分别对应的当前负载率,基于各个当前负载率,将各个终端对象分别与对应的服务器进行连接。
94.终端句柄创建模块606,用于基于终端对象所连接的服务器对应的句柄红黑树,创建终端对象对应的终端句柄,并将创建的终端句柄加入对应的句柄红黑树。
95.电表数据写入模块608,用于基于终端对象对应的终端句柄,将终端对象采集的电表数据写入终端对象所连接的服务器对应的内存池中。
96.上述电表数据处理装置,通过为各个电表分别创建相应的终端对象,基于终端对象采集电表的电表数据。进而获取各个服务器分别对应的当前负载率,基于各个当前负载率确定各个终端对象分别连接的服务器,能够充分利用各个服务器资源,从而提高电表数据处理的效率。基于终端对象所连接的服务器对应的句柄红黑树,创建终端对象对应的终端句柄,将各个终端对象对应的终端句柄加入对应的红黑树,并基于终端对象对应的终端
句柄,将终端对象采集的电表数据写入终端对象所连接的服务器对应的内存池中。为各个终端对象创建对应的终端句柄,并加入对应的句柄红黑树,基于句柄红黑树,对句柄红黑树中各个终端句柄分别对应的终端对象进行管理,能够有效提高电表数据的查询效率和电表数据的读写效率,从而提高电表数据处理效率。
97.在一个实施例中,终端对象连接模块604还用于:
98.获取各个服务器分别对应的当前连接数和最大连接数;将同一服务器对应的当前连接数和最大连接数之间的比值作为服务器对应的当前负载率,得到各个服务器分别对应的当前负载率。
99.在一个实施例中,终端对象连接模块604还用于:
100.从各个终端对象中确定当前终端对象;将当前负载率最小值对应的服务器作为目标服务器;将所述当前终端对象与所述目标服务器进行连接;更新所述目标服务器对应的当前负载率;返回所述从各个终端对象中确定当前终端对象的步骤执行,直至所述各个终端对象均与对应的服务器连接。
101.在一个实施例中,如图7所示,电表数据处理装置还包括:
102.终端对象断开模块702,用于将终端对象采集的电表数据写入终端对象所连接的服务器对应的内存池后,断开终端对象与对应的服务器之间的连接。
103.监听线程创建模块704,用于为所述各个终端对象分别创建对应的监听线程;基于各个监听线程,通过所述各个终端对象并行监听各个电表的电表运作。
104.读请求响应模块706,用于获取异步读请求队列;从所述异步读请求队列中确定目标异步读请求,确定所述目标异步读请求对应的目标终端句柄;基于所述目标终端句柄从对应的内存池中读取电表数据;当读取到的电表数据为空时,向所述目标终端句柄关联的终端对象发送电表数据采集请求;基于所述目标终端句柄再次从对应的内存池中读取电表数据。
105.内核任务响应模块708,用于获取当前服务器对应的内核任务;
106.将所述内核任务对应的补充数据传输到所述当前服务器的内存池中;基于所述当前服务器的内存池中的电表数据和补充数据,在所述当前服务器的内存池中处理所述内核任务,得到对应的处理结果。
107.上述电表数据处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
108.在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图8所示。该计算机设备包括处理器、存储器、输入/输出接口(input/output,简称i/o)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储当前负载率、电表数据等数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种电表
数据处理方法。
109.在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图8所示。该计算机设备包括处理器、存储器、输入/输出接口、通信接口、显示单元和输入装置。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过wifi、移动蜂窝网络、nfc(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种电表数据处理方法。该计算机设备的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置。显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
110.本领域技术人员可以理解,图8、9中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
111.在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
112.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各方法实施例中的步骤。
113.在一个实施例中,提供了一种计算机程序产品或计算机程序,该计算机产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法实施例中的步骤。
114.需要说明的是,本技术所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
115.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(reram)、磁变存储器(magnetoresistive random access memory,mram)、铁电存储器(ferroelectric random access memory,fram)、相变存储器(phase change memory,pcm)、石墨烯存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器等。作为说明而非局限,ram可以是多种形式,比如静态随机存
取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。本技术所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本技术所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
116.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
117.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。

技术特征:
1.一种电表数据处理方法,其特征在于,所述方法包括:创建多个电表分别对应的终端对象;所述终端对象用于采集电表的电表数据;获取多个服务器分别对应的当前负载率,基于各个当前负载率,将各个终端对象分别与对应的服务器进行连接;基于终端对象所连接的服务器对应的句柄红黑树,创建终端对象对应的终端句柄,并将创建的终端句柄加入对应的句柄红黑树;基于终端对象对应的终端句柄,将终端对象采集的电表数据写入终端对象所连接的服务器对应的内存池中。2.根据权利要求1所述的方法,其特征在于,所述获取多个服务器分别对应的当前负载率,包括:获取各个服务器分别对应的当前连接数和最大连接数;将同一服务器对应的当前连接数和最大连接数之间的比值作为服务器对应的当前负载率,得到各个服务器分别对应的当前负载率。3.根据权利要求1所述的方法,其特征在于,所述基于各个当前负载率,将各个终端对象分别与对应的服务器进行连接,包括:从各个终端对象中确定当前终端对象;将当前负载率最小值对应的服务器作为目标服务器;将所述当前终端对象与所述目标服务器进行连接;更新所述目标服务器对应的当前负载率;返回所述从各个终端对象中确定当前终端的步骤执行,直至所述各个终端对象均与对应的服务器连接。4.根据权利要求1所述的方法,其特征在于,所述方法还包括:将终端对象采集的电表数据写入终端对象所连接的服务器对应的内存池后,断开终端对象与对应的服务器之间的连接。5.根据权利要求1述的方法,其特征在于,所述方法还包括:为所述各个终端对象分别创建对应的监听线程;基于各个监听线程,通过所述各个终端对象并行监听各个电表的电表运作。6.根据权利要求1所述的方法,其特征在于,所述方法还包括:获取异步读请求队列;从所述异步读请求队列中确定目标异步读请求,确定所述目标异步读请求对应的目标终端句柄;基于所述目标终端句柄从对应的内存池中读取电表数据;当读取到的电表数据为空时,向所述目标终端句柄关联的终端对象发送电表数据采集请求;基于所述目标终端句柄再次从对应的内存池中读取电表数据。7.根据权利要求1所述的方法,其特征在于,所述方法还包括:获取当前服务器对应的内核任务;将所述内核任务对应的补充数据传输到所述当前服务器的内存池中;基于所述当前服务器的内存池中的电表数据和补充数据,在所述当前服务器的内存池
中处理所述内核任务,得到对应的处理结果。8.一种电表数据处理装置,其特征在于,所述装置包括:终端对象创建模块,用于创建多个电表分别对应的终端对象;所述终端对象用于采集电表的电表数据;终端对象连接模块,用于获取多个服务器分别对应的当前负载率,基于各个当前负载率,将各个终端对象分别与对应的服务器进行连接;终端句柄创建模块,用于基于终端对象所连接的服务器对应的句柄红黑树,创建终端对象对应的终端句柄,并将创建的终端句柄加入对应的句柄红黑树;电表数据写入模块,用于基于终端对象对应的终端句柄,将终端对象采集的电表数据写入终端对象所连接的服务器对应的内存池中。9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。

技术总结
本申请涉及一种电表数据处理方法、装置、计算机设备、存储介质和计算机程序产品。所述方法包括:创建多个电表分别对应的终端对象;终端对象用于采集电表的电表数据;获取多个服务器分别对应的当前负载率,基于各个当前负载率,将各个终端对象分别与对应的服务器进行连接;基于终端对象所连接的服务器对应的句柄红黑树,创建终端对象对应的终端句柄,并将创建的终端句柄加入对应的句柄红黑树;基于终端对象对应的终端句柄,将终端对象采集的电表数据写入终端对象所连接的服务器对应的内存池中。采用本方法能够提高电表数据处理的效率。采用本方法能够提高电表数据处理的效率。采用本方法能够提高电表数据处理的效率。


技术研发人员:魏华杰 陈敏 薛冰 庄婉铃 刘迪 刘军伟
受保护的技术使用者:深圳供电局有限公司
技术研发日:2023.01.04
技术公布日:2023/6/12
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐