一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种融合终端高并发数据场景下降低负载的调节方法与流程

2022-04-30 17:29:09 来源:中国专利 TAG:


1.本发明涉及智能电表通信技术领域,具体涉及融合终端高并发数据场景下降低负载的调节方法和相关的计算机可读存储介质。


背景技术:

2.台区智能融合终端(以下简称scu)延续了能源控制器“硬件模组化,软件app化”的设计理念,结合高主频、大存储的物理硬件而研发设计,具备分布式架构、数据与业务分离、矩阵式的应用扩展、跨平台的业务交互等诸多先进特点。硬件模组化设计可实现客户侧和配电侧计量与感知设备的灵活接入,具有数据采集、智能费控、时钟同步、精准计量、有序充电、用能管理、回路状态巡检、户变关系识别、停电事件上报等业务功能;软件app化的设计支持不同厂家相同app的互换,支持新业务app的拓展安装。产品可在用电信息采集、电能质量分析、综合能源计量采集、分布式能源管理、电动汽车有序充电等领域实现广泛应用。
3.对于传统的集中器终端设备,通常是采用多个进程的方式进行工作,进程之间的数据交互是通过共享内存或文件的方式实现,每当有数据更新时,写数据的进程通过进程间通信的方式发送通知给读数据进程,这样做的缺点是只能实现点对点的数据交互,并且此操作类型是完全同步的方式,当大量的同类型操作出现时,必然会导致各个进程之间的数据处理重复操作不及时的问题。例如:用户通过主站连续给终端添加100块表设备,按照原有方案,在新的台区智能融合终端上,用户每操作一次添加设备,终端app都会操作一次数据中心写操作,数据中心再发通知给其它各个订阅的app,这样本轮操作就会操作数据中心100次,发送100次通知给各个app,各个app加载100次数据中心的数据;但是,其实各个app往往并不需要此刻立即用到此次更新的数据,如果同一时刻所有app都去加载,将会大量占用系统的io资源,导致出现潮汐效应,出现性能瓶颈,从而导致真正需要更新数据的app无法及时获取到数据。


技术实现要素:

4.鉴于此,本发明提出了台区智能融合终端高并发数据场景下降低负载的调节方法,以解决上述现有技术所存在的技术问题。
5.为解决上述技术问题,本发明采用以下技术方案:
6.一种融合终端高并发数据场景下降低负载的调节方法,包括如下步骤:s1、前端数据处理app初始化各个数据类型对应的时延间隔统计模块和请求队列;其中,app是指运行于终端的应用程序;s2、对于所述各个数据类型中的任一数据类型a,所述前端数据处理app将接收到的前端对数据类型a的写请求wa放置到对应的请求队列qa中;s3、所述前端数据处理app根据数据类型a的时延间隔统计模块ma分析估算的本次最大时延间隔开启第一定时器,并监测接下来是否有连续的数据类型a的写请求;若有,则执行步骤s4.1;若无,则执行步骤s4.2;s4.1、输入本次操作时延间隔样本到对应的时延间隔统计模块ma,时延间隔统计模块ma分析估算出下次操作的最大时延间隔,然后回到步骤s2;s4.2、判断所述第一定时器
是否计时结束;若是,则进入步骤s5;若否,则继续监测是否有连续的数据类型a的写请求;s5、所述前端数据处理app取出请求队列qa中数据类型a的所有请求任务,并使用事务批处理的方式将取出的所有请求任务统一写入数据中心,并在写入完成后,通过消息队列遥测传输方式发送数据类型a更新通知给各个订阅数据类型a的app;s6、所述订阅数据类型a的app接收到数据类型a更新通知后,将数据类型a的有效标志置为过期,并开启第二定时器,监测本app接下来是否有对数据类型a的读操作;若监测到对数据类型a的读操作,则执行步骤s9;若未监测到对数据类型a的读操作,则执行步骤s7;s7、判断所述第二定时器是否计时结束;若否,则继续监测;若是,则执行步骤s8;s8、判断当前数据中心app是否空闲;若否,则继续监测;若是,则执行步骤s9;s9、接收到所述数据类型a更新通知的app从数据中心重新加载数据类型a的数据。
7.进一步地,步骤s1中,在终端出厂时进行初始化,包括设置初始默认时延间隔,以及所述前端数据处理app各个模块的初始统计样本个数均初始化为0。
8.进一步地,步骤s2中,各个数据类型的写请求进入对应的请求队列采用先进先出的策略,以确保各个任务有序执行。
9.进一步地,步骤s2中,各个数据类型的写请求不限于主站前端的随抄请求,还包括终端的lcd界面操作、定抄任务或事件上报。
10.进一步地,步骤s3中,所述前端数据处理app使用异步方式监听前端,挂起当前线程,当监听到写请求时进行唤醒,以提高cpu的利用率。
11.进一步地,步骤s3中,一个请求队列只对应一个定时器;对于某个请求队列而言,当有新的同类型请求到达时,此队列的定时器并不是计时结束,而是根据新的时延值重新开始计时。
12.进一步地,步骤s41时延间隔统计模块ma分析估算出下次操作的最大时延间隔,包括:
13.时延间隔统计模块ma每次输入的操作时延间隔样本服从标准正态分布,即
[0014][0015][0016]
统计出时延间隔统计模块ma的期望为μ,标准差为σ,则下次操作的最大时延间隔mt2计算公式如下:
[0017]
mt2=μ 3σ mt1*k
[0018]
其中,mt1为输入的本次操作时延间隔样本,k为与上次操作的关联因子。
[0019]
进一步地,步骤s41时延间隔统计模块ma分析估算出下次操作的最大时延间隔时,如果是首次输入样本,则由于尚不存在期望μ、标准差σ和mt1,则mt2的计算公式为:
[0020]
mt2=mt
[0021]
其中,mt为终端出厂时的默认时延间隔。
[0022]
进一步地,步骤s5中,使用数据中心的批处理接口一次写入提交,如果出现尝试多次失败的情况,则继续保留请求队列qa中的所有任务,并重新开始所述第一定时器的计时,返回执行步骤s3。
[0023]
本发明另还提出一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,可实现前述的融合终端高并发数据场景下降低负载的调节方法的步骤。
[0024]
与现有技术相比,本发明具有如下有益效果:
[0025]
本发明通过终端智能的分析估算前端各个操作的时延间隔,过滤了大量的重复同类型操作,大幅度降低了在高并发数据场景下终端的网络io负载。并且能够准确地通过历史统计值和上次的实际值分析估算出下次前端操作的最大时延间隔,然后通过检测当前操作是否为先前同类型的操作,达到去重的目的,因此,极大地减少了终端app之间的数据更新通知交互,提高了网络io的利用率,为终端的其它抄表、事件上报等业务提供了保障。
[0026]
此外,本发明通过终端延迟加载数据的策略,充分的利用了各个app读取数据的空闲时间和请求数据中心的空闲时间,从而避免了大量app在同一时刻同时操作数据中心相同数据类型的高并发行为,大大降低了数据中心的负载。
附图说明
[0027]
图1是本发明实施例提出的融合终端高并发数据场景下降低负载的调节方法流程图。
具体实施方式
[0028]
下面结合附图和具体的实施方式对本发明作进一步说明。
[0029]
如图1所示,本发明实施例提出一种融合终端高并发数据场景下降低负载的调节方法,包括如下步骤s1~s9:
[0030]
s1、前端数据处理app初始化各个数据类型对应的时延间隔统计模块和请求队列;其中,app是指运行于终端的应用程序,所述终端是指台区智能融合终端,其上运行有前端数据处理app、数据中心app、订阅数据中心app的数据更新通知的其它业务app三种类型app。其中,前端数据处理app负责接收并处理前端的请求。
[0031]
台区智能融合终端的数据类型根据实际业务情况,可包含多种,比如日曲线采集方案、分钟曲线采集任务或者是电表档案信息等等,不限于此。后续的步骤适用于任一数据类型。
[0032]
步骤s1进行初始化具体表现为:终端在出厂时,前端数据处理app各个模块的初始统计样本个数均为0,初始默认时延间隔记为mt,一般设为2秒,当然也可以自定义加载已有的配置文件来修改。此外,各个模块的统计相关值会实时序列化到文件,即使终端出现停电等事件,再次上电启动时也能继续使用,因此具有较强的可恢复性。
[0033]
s2、对于所述各个数据类型中的任一数据类型a,所述前端数据处理app将接收到的前端对数据类型a的写请求wa放置到对应的请求队列qa中。具体表现为:终端在出厂时,各个请求队列均没有任务,随着时间的推移,各个类型的请求会不断的存放到对应的队列中,使用先进先出的策略,确保各个任务有序执行,需要注意的是,请求不限于主站前端的随抄请求,也有可能是终端的lcd界面操作、定抄任务和事件上报等。
[0034]
s3、所述前端数据处理app根据数据类型a的时延间隔统计模块ma分析估算的本次最大时延间隔开启第一定时器,并监测接下来是否有连续的数据类型a的写请求;若有,则
执行步骤s4.1;若无,则执行步骤s4.2。具体表现为:前端数据处理app使用异步的方式监听前端,挂起当前线程,当有请求过来时,立马唤醒,从而大幅提高cpu的利用率;此外,需要注意的是,一个请求队列只对应一个定时器timer,当有新的同类型请求到达时,此队列的定时器并不是计时结束,而是根据新的时延值重新开始计时。
[0035]
s4.1、输入本次操作时延间隔样本到对应的时延间隔统计模块ma,时延间隔统计模块ma分析估算出下次操作的最大时延间隔,然后回到步骤s2。分析估算下次操作的最大时延间隔mt2的计算方法为:
[0036]
时延间隔统计模块ma每次输入的操作时延间隔样本,可认为服从标准正态分布,即:
[0037][0038]
p(ak|yi)=
ɡ
(ak,η
yi

yi
)
[0039]
统计出时延间隔统计模块ma的期望为μ,标准差为σ,则下次操作的最大时延间隔mt2计算公式如下:
[0040]
mt2=μ 3σ mt1*k
[0041]
其中,mt1为输入的本次操作时延间隔样本,k为与上次操作的关联因子,一般默认值为0.1,也可以根据数据类型自定义配置。
[0042]
需要注意的是,如果是首次输入样本,则由于没有期望μ、标准差σ和mt1,则mt2的计算公式为:
[0043]
mt2=mt
[0044]
其中mt为终端出厂时的默认时延间隔,一般为2秒。
[0045]
s4.2、判断所述第一定时器是否计时结束;若是,则进入步骤s5;若否,则继续监测是否有连续的数据类型a的写请求;
[0046]
s5、所述前端数据处理app取出请求队列qa中数据类型a的所有请求任务,并使用事务批处理的方式将取出的所有请求任务统一写入数据中心,并在写入完成后,通过消息队列遥测传输方式发送数据类型a更新通知给各个订阅数据类型a的app。具体表现为:使用数据中心的批处理接口一次写入提交,如果出现尝试多次失败的情况,则继续保留队列qa中的所有任务,并重新开始所述第一定时器的计时,返回执行步骤s3。此时需要注意的是,步骤s3中的最大时延间隔值将不会发生变化。
[0047]
s6、所述订阅数据类型a的app接收到数据类型a更新通知后,将数据类型a的有效标志置为过期,并开启第二定时器,监测本app接下来是否有对数据类型a的读操作;若监测到对数据类型a的读操作,则执行步骤s9,这从根本上保证了各个app在做到数据负载均衡的同时,能够及时拿到正确的最新的数据,避免了脏数据的产生;若未监测到对数据类型a的读操作,则执行步骤s7;
[0048]
s7、判断所述第二定时器是否计时结束;若否,则继续监测;若是,则执行步骤s8;
[0049]
s8、判断当前数据中心app是否空闲;具体表现为:终端业务app会检查当前数据中心操作队列中是否有正在执行的未完成任务,如果有,则认为数据中心操作繁忙,即“不空闲”,则继续监测;若检测到当前数据中心app空闲,则执行步骤s9;
[0050]
s9、接收到所述数据类型a更新通知的app从数据中心重新加载数据类型a的数据,
更新内存。
[0051]
本发明实施例另还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,可实现前述实施例的融合终端高并发数据场景下降低负载的调节方法的步骤。
[0052]
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的技术人员来说,在不脱离本发明构思的前提下,还可以做出若干等同替代或明显变型,而且性能或用途相同,都应当视为属于本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献