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

一种基于背压问题的处理方法及系统与流程

2022-03-19 22:32:39 来源:中国专利 TAG:


1.本发明涉及响应式编程领域,具体涉及一种基于背压问题的处理方法及系统。


背景技术:

2.响应式编程是一种面向数据流和变化传播的编程范式。这意味着可以在编程语言中很方便地表达静态或动态的数据流,而相关的计算模型会自动将变化的值通过数据流进行传播。当上下游的流操作处于不同的线程时,如果上游弹射数据的速度快于下游接收处理数据的速度,对于那些没来得及处理的数据就会造成积压,这些数据既不会丢失,又不会被垃圾回收机制回收,而是存放在一个异步缓存池中,如果缓存池中的数据一直得不到处理,越积越多,最后就会造成内存溢出(out of memory,oom),这便是响应式编程中的背压问题。
3.但本技术发明人在实现本技术实施例中发明技术方案的过程中,发现上述技术至少存在如下技术问题:
4.存在由于数据发送速度和接受消费速度不匹配,导致的背压问题发生概率较高,下游缓存区溢出,oom、系统崩溃的问题。


技术实现要素:

5.本技术实施例通过提供了一种基于背压问题的处理方法及系统,解决了现有技术中存在由于数据发送速度和接受消费速度不匹配,导致的背压问题发生概率较高,下游缓存区溢出,oom、系统崩溃的技术问题。达到了对事件处理过程中的处理速度差值进行观察,使得事件的发送和消费达到一个动态平衡的过程,从而有效降低背压出现的概率,避免导致oom、系统崩溃等问题发生的技术效果。
6.鉴于上述问题,本技术实施例提供了一种基于背压问题的处理方法及系统。
7.第一方面,本技术实施例提供了一种基于背压问题的处理方法,其中,所述方法包括:构建事件关系信息,所述事件关系信息为被观察者与观察者之间的事件下发和消费关系;基于所述事件关系信息,获得事件处理指令,所述事件处理指令用于将被观察者下发的事件发送至观察者进行接收和消费,且,所述事件处理指令包括事件下发时间;根据所述事件下发时间,获得被观察者下发速度;获得观察者消费速度;根据所述被观察者下发速度、所述观察者消费速度,获得事件处理速度差值;当所述事件处理速度差值超出预设条件时,根据所述事件处理速度差值,获得事件处理策略;基于所述事件处理策略,获得第一执行指令,所述第一执行指令用于根据所述事件处理策略对事件处理过程进行调整控制。
8.另一方面,本技术实施例提供了一种基于背压问题的处理系统,其中,所述系统包括:第一构建单元,所述第一构建单元用于构建事件关系信息,所述事件关系信息为被观察者与观察者之间的事件下发和消费关系;第一获得单元,所述第一获得单元用于基于所述事件关系信息,获得事件处理指令,所述事件处理指令用于将被观察者下发的事件发送至观察者进行接收和消费,且,所述事件处理指令包括事件下发时间;第二获得单元,所述第
二获得单元用于根据所述事件下发时间,获得被观察者下发速度;第三获得单元,所述第三获得单元用于获得观察者消费速度;第四获得单元,所述第四获得单元用于根据所述被观察者下发速度、所述观察者消费速度,获得事件处理速度差值;第五获得单元,所述第五获得单元用于当所述事件处理速度差值超出预设条件时,根据所述事件处理速度差值,获得事件处理策略;第六获得单元,所述第六获得单元用于基于所述事件处理策略,获得第一执行指令,所述第一执行指令用于根据所述事件处理策略对事件处理过程进行调整控制。
9.第三方面,本技术实施例提供了一种基于背压问题的处理系统,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现第一方面任一项所述方法的步骤。
10.本技术实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
11.由于采用了构建事件关系信息,所述事件关系信息为被观察者与观察者之间的事件下发和消费关系;基于所述事件关系信息,获得事件处理指令,所述事件处理指令用于将被观察者下发的事件发送至观察者进行接收和消费,且,所述事件处理指令包括事件下发时间;根据所述事件下发时间,获得被观察者下发速度;获得观察者消费速度;根据所述被观察者下发速度、所述观察者消费速度,获得事件处理速度差值;当所述事件处理速度差值超出预设条件时,根据所述事件处理速度差值,获得事件处理策略;基于所述事件处理策略,获得第一执行指令,所述第一执行指令用于根据所述事件处理策略对事件处理过程进行调整控制的技术方案,本技术实施例通过提供了一种基于背压问题的处理方法及系统,达到了对事件处理过程中的处理速度差值进行观察,使得事件的发送和消费达到一个动态平衡的过程,从而有效降低背压出现的概率,避免导致oom、系统崩溃等问题发生的技术效果。
12.上述说明仅是本技术技术方案的概述,为了能够更清楚了解本技术的技术手段,而可依照说明书的内容予以实施,并且为了让本技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本技术的具体实施方式。
附图说明
13.图1为本技术实施例一种基于背压问题的处理方法的流程示意图;
14.图2为本技术实施例一种基于背压问题的处理方法的获得事件处理策略的流程示意图;
15.图3为本技术实施例一种基于背压问题的处理方法的将可丢弃事件进行丢弃处理的流程示意图;
16.图4为本技术实施例一种基于背压问题的处理方法的生成事件丢弃指令的流程示意图;
17.图5为本技术实施例一种基于背压问题的处理系统的结构示意图;
18.图6为本技术实施例示例性电子设备的结构示意图。
19.附图标记说明:第一构建单元11,第一获得单元12,第二获得单元13,第三获得单元14,第四获得单元15,第五获得单元16,第六获得单元17,电子设备300,存储器301,处理器302,通信接口303,总线架构304。
具体实施方式
20.本技术实施例通过提供了一种基于背压问题的处理方法及系统,解决了现有技术中存在由于数据发送速度和接受消费速度不匹配,导致的背压问题发生概率较高,下游缓存区溢出,oom、系统崩溃的技术问题。达到了对事件处理过程中的处理速度差值进行观察,使得事件的发送和消费达到一个动态平衡的过程,从而有效降低背压出现的概率,避免导致oom、系统崩溃等问题发生的技术效果。
21.申请概述
22.响应式编程是一种面向数据流和变化传播的编程范式。这意味着可以在编程语言中很方便地表达静态或动态的数据流,而相关的计算模型会自动将变化的值通过数据流进行传播。当上下游的流操作处于不同的线程时,如果上游弹射数据的速度快于下游接收处理数据的速度,对于那些没来得及处理的数据就会造成积压,这些数据既不会丢失,又不会被垃圾回收机制回收,而是存放在一个异步缓存池中,如果缓存池中的数据一直得不到处理,越积越多,最后就会造成内存溢出(out of memory,oom),这便是响应式编程中的背压问题。现有技术中存在由于数据发送速度和接受消费速度不匹配,导致的背压问题发生概率较高,下游缓存区溢出,oom、系统崩溃的技术问题。
23.针对上述技术问题,本技术提供的技术方案总体思路如下:
24.本技术实施例提供了一种基于背压问题的处理方法,其中,所述方法包括:构建事件关系信息,所述事件关系信息为被观察者与观察者之间的事件下发和消费关系;基于所述事件关系信息,获得事件处理指令,所述事件处理指令用于将被观察者下发的事件发送至观察者进行接收和消费,且,所述事件处理指令包括事件下发时间;根据所述事件下发时间,获得被观察者下发速度;获得观察者消费速度;根据所述被观察者下发速度、所述观察者消费速度,获得事件处理速度差值;当所述事件处理速度差值超出预设条件时,根据所述事件处理速度差值,获得事件处理策略;基于所述事件处理策略,获得第一执行指令,所述第一执行指令用于根据所述事件处理策略对事件处理过程进行调整控制。
25.在介绍了本技术基本原理后,下面将结合说明书附图来具体介绍本技术的各种非限制性的实施方式。
26.实施例一
27.如图1所示,本技术实施例提供了一种基于背压问题的处理方法,其中,所述方法包括:
28.s100:构建事件关系信息,所述事件关系信息为被观察者与观察者之间的事件下发和消费关系;
29.s200:基于所述事件关系信息,获得事件处理指令,所述事件处理指令用于将被观察者下发的事件发送至观察者进行接收和消费,且,所述事件处理指令包括事件下发时间;
30.具体而言,构建被观察者和观察者进行请求和响应关系,即所述事件关系信息。其中被观察者为下发事件方,观察者为接收和消费事件方,并且被观察者从上游进行事件的下发,观察者在下游进行事件的接收和消费。基于所述事件关系信息,获得事件处理指令,根据该指令,按照事件下发时间将被观察者下发的事件发送至观察者进行接收和消费。通过构建事件关系,能够为后续解决备压问题奠定基础。
31.s300:根据所述事件下发时间,获得被观察者下发速度;
32.s400:获得观察者消费速度;
33.s500:根据所述被观察者下发速度、所述观察者消费速度,获得事件处理速度差值;
34.具体而言,由于在异步场景下,在数据流从上游生产者向下游消费者传输的过程中,当上游生产速度远大于下游消费速度,导致下游的缓存区溢出,从而导致内存溢出、系统崩溃等问题。故需要对被观察者下发速度和观察者消费速度进行观察。根据所述事件下发时间,获得被观察者下发速度和观察者消费速度。根据二者的速度,获得事件处理的速度差值。从而为解决数据背压问题奠定基础。
35.s600:当所述事件处理速度差值超出预设条件时,根据所述事件处理速度差值,获得事件处理策略;
36.s700:基于所述事件处理策略,获得第一执行指令,所述第一执行指令用于根据所述事件处理策略对事件处理过程进行调整控制。
37.具体而言,预设条件用于限制所述事件处理速度差值,若所述事件处理速度差值超出所述预设条件,则根据所述事件处理速度差值获得所述事件处理策略。从而根据事件处理策略,获得所述第一执行指令,从而对事件处理过程进行调控。通过对事件处理速度差值进行限定,从而采用处理策略,如预警、调整生产速度、事件打包发送等策略,能够对事件处理过程进行效果显著的调整控制。能够使被观察者和观察者对事件的发送和消费达到一个动态平衡的过程,从而有效降低背压出现的概率,避免导致oom、系统崩溃等问题。
38.进一步的,如图2所示,所述当所述事件处理速度差值超出预设条件时,根据所述事件处理速度差值,获得事件处理策略,步骤s600还包括:
39.s610:根据所述事件处理速度差值,获得观察者未处理事件;
40.s620:将所述观察者未处理事件存储于事件缓存区,获得事件缓存区的使用率;
41.s630:当所述事件缓存区的使用率超出缓存预设阈值时,获得预警信息,并生成生产速度调整信息,其中,所述预警信息用于向所述被观察者发送预警信息,所述生产速度调整信息用于减慢所述被观察者的事件生产速度;
42.s640:根据所述生产速度调整信息、所述预警信息,获得所述事件处理策略。
43.具体而言,事件处理速度差值为所述被观察者下发速度和所述观察者消费速度的差值。当观察者消费速度慢于被观察者消息的下发速度时,根据所述事件处理速度差值,获得观察者未处理事件。将未处理事件储存于事件缓存区,随着未处理事件的增多,获得事件缓存区的使用率。缓存区的容量是固定的,且缓存区具有所述缓存预设阈值,该阈值标识着缓存区的存储安全范围。若缓存区的使用率超过所述缓存预设阈值,获得所述预警信息,例如:建议当缓冲区的使用率达到自身容量的80%时,即所述缓存预设阈值为80%时,生成所述预警信息。并且生成所述生产速度调整信息。其中,所述预警信息用于向所述被观察者发送预警信息,所述生产速度调整信息用于减慢所述被观察者的事件生产速度。根据所述生产速度调整信息、所述预警信息,获得所述事件处理策略,所述事件处理策略包括此处的被观察者预警及调整数据流生产速度。能够实现从数据流发送端进行速度控制,并且新增缓存区预警模式,从而提供高效的事件处理策略。
44.进一步的,所述当所述事件缓存区的使用率超出缓存预设阈值时,步骤s630还包括:
45.s631:根据所述观察者未处理事件,获得事件打包指令,所述事件打包指令用于对所述事件缓存区的未处理事件进行打包处理得到打包事件信息;
46.s632:基于所述打包事件信息,获得打包发送信息,所述打包发送信息用于将打包事件信息发送至所述观察者进行接收和消费。
47.具体而言,当所述事件缓存区的使用率超出缓存预设阈值时,获得所述观察者的未处理事件数据,获得事件打包指令,根据事件打包指令,对事件缓存区的未处理事件进行打包处理,获得所述打包事件信息,包括打包数量,包裹的数据量等。基于所述打包事件信息,获得打包发送信息,根据所述打包发送信息将打包事件信息发送至所述观察者进行接收和消费。对缓冲区已有的数据进行打包,将上游被观察者的多个小包裹打成大包裹,分发到下游观察者处,这样下游需要处理的包裹数就少了,一定程度上减轻了下游消费过慢的情况。
48.进一步的,如图3所示,本技术实施例还包括:
49.s641:获得事件缓存区的缓存上限;
50.s642:判断所述事件缓存区的使用率是否达到所述事件缓存区的缓存上限;
51.s643:当达到时,获得所述事件缓存区的未处理事件的属性信息,所述属性信息包括可丢弃属性;
52.s644:根据所述属性信息,获得可丢弃缓存事件;
53.s645:根据所述可丢弃缓存事件,获得事件丢弃指令,所述事件丢弃指令用于将可丢弃事件进行丢弃处理。
54.进一步的,如图4所示,所述根据所述可丢弃缓存事件,获得事件丢弃指令,步骤s645还包括:
55.s6451:获得内存淘汰算法;
56.s6452:利用所述内存淘汰算法对所述可丢弃缓存事件进行计算,获得可丢弃事件;
57.s6453:基于所述可丢弃事件,生成所述事件丢弃指令。
58.具体而言,获得所述事件缓存区的缓存上限,判断所述事件缓存区的使用率是否达到缓存上限,如果使用率达到所述事件缓存区上限的时候,获得所述事件缓存区的未处理事件的属性信息,其中包含可丢弃属性。根据所述事件缓存区的所有未处理事件的可丢弃属性,获得可丢弃的缓存事件。获得所述内存淘汰算法,可按照内存淘汰算法对所述可丢弃缓存事件进行计算,获得可丢弃事件,基于所述可丢弃事件,生成所述事件丢弃指令,所述事件丢弃指令用于将可丢弃事件进行丢弃处理。通过可丢弃事件的丢弃。
59.进一步的,所述根据所述属性信息,获得可丢弃缓存事件之后,步骤s644还包括:
60.s6441:获得可丢弃缓存事件数量;
61.s6442:当所述可丢弃缓存事件数量为0时,获得修改代码指令或让步指令。
62.具体而言,当所述事件缓存区的使用率达到所述事件缓存区的缓存上限但所述可丢弃缓存事件数量为0,即上游事件生产速度过快,并且事件是不可以丢弃的,此时获得所述修改代码指令或让步指令,进行修改代码设计或者让步方式等来规避风险。通过可丢弃缓存事件数量的判断,保证当无可丢弃缓存事件时,能够通过修改代码或让步方式来规避风险。
63.综上所述,本技术实施例所提供的一种基于背压问题的处理方法及系统具有如下技术效果:
64.1.由于采用了构建事件关系信息,所述事件关系信息为被观察者与观察者之间的事件下发和消费关系;基于所述事件关系信息,获得事件处理指令,所述事件处理指令用于将被观察者下发的事件发送至观察者进行接收和消费,且,所述事件处理指令包括事件下发时间;根据所述事件下发时间,获得被观察者下发速度;获得观察者消费速度;根据所述被观察者下发速度、所述观察者消费速度,获得事件处理速度差值;当所述事件处理速度差值超出预设条件时,根据所述事件处理速度差值,获得事件处理策略;基于所述事件处理策略,获得第一执行指令,所述第一执行指令用于根据所述事件处理策略对事件处理过程进行调整控制的技术方案,本技术实施例通过提供了一种基于背压问题的处理方法及系统,达到了对事件处理过程中的处理速度差值进行观察,使得事件的发送和消费达到一个动态平衡的过程,从而有效降低背压出现的概率,避免导致oom、系统崩溃等问题发生的技术效果。
65.2.由于采用了对可丢弃缓存事件数量的分析判断,保证当无可丢弃缓存事件时,能够通过修改代码或让步方式来规避风险的技术效果。
66.实施例二
67.基于与前述实施例中一种基于背压问题的处理方法相同的发明构思,如图5所示,本技术实施例提供了一种基于背压问题的处理系统,其中,所述系统包括:
68.第一构建单元11,所述第一构建单元11用于构建事件关系信息,所述事件关系信息为被观察者与观察者之间的事件下发和消费关系;
69.第一获得单元12,所述第一获得单元12用于基于所述事件关系信息,获得事件处理指令,所述事件处理指令用于将被观察者下发的事件发送至观察者进行接收和消费,且,所述事件处理指令包括事件下发时间;
70.第二获得单元13,所述第二获得单元13用于根据所述事件下发时间,获得被观察者下发速度;
71.第三获得单元14,所述第三获得单元14用于获得观察者消费速度;
72.第四获得单元15,所述第四获得单元15用于根据所述被观察者下发速度、所述观察者消费速度,获得事件处理速度差值;
73.第五获得单元16,所述第五获得单元16用于当所述事件处理速度差值超出预设条件时,根据所述事件处理速度差值,获得事件处理策略;
74.第六获得单元17,所述第六获得单元17用于基于所述事件处理策略,获得第一执行指令,所述第一执行指令用于根据所述事件处理策略对事件处理过程进行调整控制。
75.进一步的,所述系统包括:
76.第七获得单元,所述第七获得单元用于根据所述事件处理速度差值,获得观察者未处理事件;
77.第八获得单元,所述第八获得单元用于将所述观察者未处理事件存储于事件缓存区,获得事件缓存区的使用率;
78.第九获得单元,所述第九获得单元用于当所述事件缓存区的使用率超出缓存预设阈值时,获得预警信息,并生成生产速度调整信息,其中,所述预警信息用于向所述被观察
architecture,简称eisa)总线等。所述总线架构304可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
100.处理器302可以是一个cpu,微处理器,asic,或一个或多个用于控制本技术方案程序执行的集成电路。
101.通信接口303,使用任何收发器一类的系统,用于与其他设备或通信网络通信,如以太网,无线接入网(radio access network,ran),无线局域网(wireless local areanetworks,wlan),有线接入网等。
102.存储器301可以是rom或可存储静态信息和指令的其他类型的静态存储设备,ram或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、只读光盘(compact discread-only memory,cd-rom)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线架构304与处理器相连接。存储器也可以和处理器集成在一起。
103.其中,存储器301用于存储执行本技术方案的计算机执行指令,并由处理器302来控制执行。处理器302用于执行存储器301中存储的计算机执行指令,从而实现本技术上述实施例提供的一种基于背压问题的处理方法。
104.可选的,本技术实施例中的计算机执行指令也可以称之为应用程序代码,本技术实施例对此不作具体限定。
105.本技术实施例提供了一种基于背压问题的处理方法,其中,所述方法包括:构建事件关系信息,所述事件关系信息为被观察者与观察者之间的事件下发和消费关系;基于所述事件关系信息,获得事件处理指令,所述事件处理指令用于将被观察者下发的事件发送至观察者进行接收和消费,且,所述事件处理指令包括事件下发时间;根据所述事件下发时间,获得被观察者下发速度;获得观察者消费速度;根据所述被观察者下发速度、所述观察者消费速度,获得事件处理速度差值;当所述事件处理速度差值超出预设条件时,根据所述事件处理速度差值,获得事件处理策略;基于所述事件处理策略,获得第一执行指令,所述第一执行指令用于根据所述事件处理策略对事件处理过程进行调整控制。
106.本领域普通技术人员可以理解:本技术中涉及的第一、第二等各种数字编号仅为描述方便进行的区分,并不用来限制本技术实施例的范围,也不表示先后顺序。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。“至少一个”是指一个或者多个。至少两个是指两个或者多个。“至少一个”、“任意一个”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个、种),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
107.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或
部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程系统。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包括一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘(solid state disk,ssd))等。
108.本技术实施例中所描述的各种说明性的逻辑单元和电路可以通过通用处理器,数字信号处理器,专用集成电路(asic),现场可编程门阵列(fpga)或其它可编程逻辑系统,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算系统的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。
109.本技术实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件单元、或者这两者的结合。软件单元可以存储于ram存储器、闪存、rom存储器、eprom存储器、eeprom存储器、寄存器、硬盘、可移动磁盘、cd-rom或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设置于asic中,asic可以设置于终端中。可选地,处理器和存储媒介也可以设置于终端中的不同的部件中。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
110.尽管结合具体特征及其实施例对本技术进行了描述,显而易见的,在不脱离本技术的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本技术的示例性说明,且视为已覆盖本技术范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术意图包括这些改动和变型在内。
再多了解一些

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

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

相关文献