掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本公开涉及人工智能技术领域,具体涉及云计算、大数据、物联网等技术领域,尤其涉及一种数据处理方法、装置、设备和存储介质。

背景技术

规则引擎由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。在物联网场景下,规则引擎可以对物联网设备发送的数据进行处理,并转发至数据目的方。

在私有化部署场景下,规则引擎部署在用户提供的私有环境下,该环境下的计算资源以及人力资源都是有限的。

发明内容

本公开提供了一种数据处理方法、装置、设备和存储介质。

根据本公开的一方面,提供了一种数据处理方法,所述方法包括:接收数据来源方发送的待处理数据;若处理方的处理能力异常,在所述待处理数据中确定待存储数据;其中,所述处理方包括:规则引擎,和/或,所述待处理数据对应的数据目的方;将所述待存储数据存储在所述规则引擎的本地存储器内。

根据本公开的另一方面,提供了一种规则引擎,包括:数据转发模块,用于接收数据来源方发送的待处理数据;若处理方的处理能力异常,在所述待处理数据中确定待存储数据;其中,所述处理方包括:所述规则引擎,和/或,所述待处理数据对应的数据目的方;以及,将所述待存储数据存储在所述规则引擎的本地存储器内;本地存储器,用于存储所述待存储数据。

根据本公开的另一方面,提供了一种数据处理装置,所述装置包括:接收模块,用于接收数据来源方发送的待处理数据;确定模块,用于若处理方的处理能力异常,在所述待处理数据中确定待存储数据;其中,所述处理方包括:规则引擎,和/或,所述待处理数据对应的数据目的方;存储模块,用于将所述待存储数据存储在所述规则引擎的本地存储器内。

根据本公开的另一方面,提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上述任一方面的任一项所述的方法。

根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据上述任一方面的任一项所述的方法。

根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据上述任一方面的任一项所述的方法。

根据本公开的技术方案,可以提供轻量化规则引擎,以应对处理能力异常的情况。

应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。

附图说明

附图用于更好地理解本方案,不构成对本公开的限定。其中:

图1是根据本公开第一实施例的示意图;

图2是本公开实施例对应的应用场景的示意图;

图3是根据本公开第二实施例的示意图;

图4是根据本公开实施例中的数据处理模块的部分处理流程示意图;

图5是根据本公开实施例中的数据转发模块的部分处理流程示意图;

图6是根据本公开第三实施例的示意图;

图7是根据本公开第四实施例的示意图;

图8是根据本公开第五实施例的示意图

图9是用来实现本公开实施例的数据处理方法的电子设备的示意图。

具体实施方式

以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

相关技术中,处理方(规则引擎和/或数据目的方)的处理能力异常时,规则引擎可以向数据来源方(如物联网设备)直接反馈拒绝消息,但是直接反馈拒绝消息导致规则引擎的容错能力差,并且降低用户体验,增加数据来源方的处理负担;或者,规则引擎可以借助消息中间件进行处理,但是由于需要引入消息中间件,较为复杂,轻量化不足,并不适合应用在私有化这种资源有限场景下。

为了提高规则引擎的容错性,并轻量化地应对处理能力异常的情况,本公开提供如下实施例。

图1是根据本公开第一实施例的示意图,本实施例提供一种数据处理方法,该方法包括:

101、接收数据来源方发送的待处理数据。

102、若处理方的处理能力异常,在所述待处理数据中确定待存储数据;其中,所述处理方包括:规则引擎,和/或,所述待处理数据对应的数据目的方。

103、将所述待存储数据存储在所述规则引擎的本地存储器内。

其中,本实施例的方法可以应用于规则引擎。

其中,规则引擎可以提供配置界面,数据来源方可以根据自身需要配置规则引擎中的规则,规则中可以记录数据的处理方式,从而该数据来源方发送的数据被传输至规则引擎后,规则引擎可以基于预先配置的规则对该数据进行处理,并将处理后的数据转发至数据目的方。

在物联网场景下,数据来源方可以是物联网设备。

物联网设备发送的数据中可以携带数据目的方的信息,规则引擎可以基于该信息确定数据目的方。

数据来源方发送的数据可以称为待处理数据,待处理数据的数据量可以称为当前数据量。

处理方可以包括规则引擎和/或数据目的方。

针对规则引擎,由于规则引擎已经接收数据,则规则引擎具备接收数据的能力,规则引擎的处理能力异常是指超出其处理能力,即当前数据量大于规则引擎能够处理的最大数据量。

在处理方的处理能力异常时,待处理数据中的至少部分数据不能被处理,这些不能被处理的数据可以称为待存储数据,针对待存储数据,可以将待存储数据存储在规则引擎的本地存储器内,本地存储器例如是硬盘。

本实施例中,处理方的处理能力异常时,规则引擎在待处理数据中确定待存储数据,并将待存储数据存储在本地存储器内,相对于直接反馈拒绝消息的方式,可以提高规则引擎的容错性;另外,相对于借助消息中间件的方式,本实施例存储在本地的方式,可以无需引入其他部件,降低复杂性,从而可以轻量化地应对处理能力异常的情况。

为了更好地理解本公开,对本公开实施例的应用场景进行说明。

图2是本公开实施例对应的应用场景的示意图。如图2所示,数据传输系统包括:数据来源方201、接入设备202、规则引擎203和数据目的方204。

在物联网场景下,数据来源方是物联网设备,如图2中用设备A、设备B等表示。

物联网设备可以通过统一的接入设备与规则引擎进行交互,图2中该统一的接入设备用物接入服务表示。

数据目的方可以根据需要设置,图2中包括kafka服务、超文本传输协议(HyperText Transfer Protocol,HTTP)服务和时序数据库(Time Series Database,TSDB)服务为例。kafka是一个开源流处理平台。

数据来源方201产生的数据可以经过接入设备202传输至规则引擎203,规则引擎203可以基于预设规则对数据进行处理,并将处理后的数据发送至数据目的方204。数据来源方201发送的数据中携带数据目的方的信息,规则引擎203可以基于该信息确定数据目的方204。

规则引擎包括数据转发模块和数据处理模块,数据转发模块接收数据来源方发送的待处理数据,针对待处理数据中的待存储数据,将其存储入本地文件中;针对待处理数据中的待转发数据,将其转发至数据处理模块,数据处理模块对接收的数据进行处理后发送至数据目的方。

另外,数据转发模块还可以从本地文件中读取数据并转发至数据处理模块进行处理后,发送至数据目的方。

数据转发模块可以基于数据处理模块发送的反馈信息确定处理方的处理能力是否异常,以便执行存储、转发、读取等操作。

结合上述应用场景,本公开实施例还提供一种数据处理方法。

图3是根据本公开第二实施例的示意图,本实施例提供一种数据处理方法,该方法包括:

301、数据转发模块,接收数据来源方发送的待处理数据。

其中,结合图2所示的场景,数据来源方可以是物联网设备,物联网设备可以经过接入设备将待处理数据发送至规则引擎中的数据转发模块。

302、数据转发模块,判断处理方的处理能力是否异常,若是,执行303-304,否则执行305及其后续步骤。

其中,数据转发模块可以基于数据处理模块发送的反馈信息,判断处理方的处理能力是否异常。

处理方的处理能力异常可以包括:处理方具备接收数据的能力,但待处理数据的当前数据量超出自身的处理能力;或者,处理方不具备数据接收能力。

以处理方包括规则引擎和数据目的方为例,处理方的处理能力异常可以包括:待处理数据的当前数据量大于规则引擎能够处理的最大数据量;或者,数据目的方不具备数据接收能力,如数据目的方发生了宕机问题;或者,待处理数据的当前数据量大于数据目的方能够处理的最大数据量。

基于上述三种异常情况,数据处理模块可以反馈三种不同的反馈信息,可以分别称为第一反馈信息、第三反馈信息和第二反馈信息。关于反馈信息的生成可以参见图4所示的实施例,具体内容请参见后续描述。

其中,针对第一反馈信息(超出数据模块自身处理能力),第二反馈信息(超出数据目的方的处理能力),反馈信息中可以携带对应的处理方(数据处理模块或称为规则引擎,或者数据目的方)能够处理的最大数据量,从而,数据转发模块可以基于待处理数据的当前数据量和反馈信息中携带的最大数据量,判断处理能力是否异常。

针对第三反馈信息(数据目的方不具备数据接收能力),数据转发模块可以在接收到第三反馈信息后,确定处理方的处理能力异常。

即,若所述处理方具备接收数据的能力,获取所述处理方能够处理的最大数据量;若所述待处理数据的当前数据量大于所述最大数据量,确定所述处理能力异常。或者,

若所述处理方包括所述数据目的方,且确定所述数据目的方不具备数据接收能力,确定所述处理能力异常。

本实施例中,可以基于待处理数据的当前数据量与处理方能够处理的最大数据量确定处理方的处理能力是否异常,从而可以及时识别出超出处理方的处理能力的情况,实现及时准确地识别出异常情况。

本实施例中,可以基于处理方(具体是数据目的方)是否具备接收数据的能力确定处理方的处理能力是否异常,从而可以及时识别出不具备数据接收能力的情况,实现及时准确地识别出异常情况。

303、数据转发模块,在所述待处理数据中确定待存储数据。

其中,针对超出处理能力的异常,即,当前数据量大于最大数据量的情况,可以确定所述当前数据量与所述最大数据量的第一差值;在所述待处理数据中,选择数据量为所述第一差值的待处理数据,作为所述待存储数据。

例如,最大数据量是4K,当前数据量是6K,则可以计算出第一差值=2K,之后可以将2K的待处理数据作为待存储数据。其中,可以随机选择或者按照其他的预设规则进行选择。

本实施例中,基于当前数据量与最大数据量的第一差值,确定待存储数据,可以将超出处理能力的数据进行本地存储,以轻量化地实现具备容错性的规则引擎。

针对数据目的方不具备数据接收能力的异常,可以在所述待处理数据中,选择预设比例的数据作为所述待存储数据。

其中,预设比例可以为100%,即,可以将待处理数据全部作为待存储数据,或者,预设比例也可以不是100%,而是接近100%的较大的值,具体数值可以根据实际需要设定。

本实施例中,选择预设比例的数据作为所述待存储数据,可以在数据目的方不具备数据接收能力时,将全部或近似全部的待处理数据进行本地存储,以轻量化地实现具备容错性的规则引擎。

另外,针对数据目的方不具备数据接收能力的异常,数据转发模块还可以选择少量的数据(具有数据量可以设定)作为测试数据,并将测试数据发送至数据目的方,以判断数据目的方是否恢复正常,例如,针对测试数据,规则引擎对数据目的方进行写操作后,收到的响应消息是写超时,可以确定数据目的方未恢复正常;或者,规则引擎对数据目的方进行写操作后,收到的响应消息是写成功,此时可以确定数据目的方恢复正常,此处的正常是指具备数据接收能力;另外,基于当前处理情况,写成功的响应消息可以表明是否超出数据目的方的处理能力。

304、数据转发模块,将所述待存储数据存储在所述规则引擎的本地存储器内。

其中,可以以文件形式进行存储,即,参考图2,可以存储在本地文件中。

另外,针对非待存储数据,可以将其转发至数据处理模块进行处理。例如,最大数据量是4K,当前数据量是6K,则可以计算出第一差值=2K,之后可以将2K的待处理数据作为待存储数据进行本地存储,而另外的4K的待处理数据可以转发至数据处理模块进行处理。

305、数据转发模块,转发数据至数据处理模块。

其中,数据转发模块所转发的数据可以是待处理数据,或者,还可以包括待处理数据和从本地存储器内读取的数据。具体内容可以参见后续图5所示的实施例。

另外,数据转发模块在转发数据之前,还可以对数据进行格式转换等处理,以将其转换为规则引擎内部的数据格式。

306、数据处理模块,对接收的数据进行处理。

307、数据处理模块,将处理后的数据发送至数据目的方。

其中,数据处理模块可以在未超出自身处理能力时,对接收的数据按照预设规则进行处理,并在数据目的方正常(未超出处理能力且具备数据接收能力)时,将处理后的数据发送至数据目的方。

数据处理模块可以在自身异常(超出自身处理能力),和/或,数据目的方异常(超出数据目的方的处理能力或者数据目的方不具备接收数据的能力)时,向数据转发模块发送反馈信息,并且针对不同的异常情况,可以反馈不同的反馈信息。

本实施例中,数据转发模块在确定处理方的处理能力异常时,可以在待处理数据中确定待存储数据,并将待存储数据存储在规则引擎的本地存储器内,由于在异常时并非直接向数据来源方反馈拒绝消息,可以提高规则引擎的容错性,并提升用户体验,降低数据来源方的处理负担;将待存储数据存储在本地,而不是引入消息中间件,可以降低系统复杂度,轻量化地实现具备一定容错性的规则引擎,特别适用于用户私有环境这种资源有限的场景下。

图4是根据本公开实施例中的数据处理模块的部分处理流程示意图,如图4所示,该流程可以包括:

401、数据处理模块,接收数据转发模块发送的数据。

其中,参考图3,数据转发模块在确定处理方的处理能力正常时,可以转发数据至数据处理模块。

402、数据处理模块,判断是否超出自身处理能力,若是,执行403,否则执行404。

其中,在具体实现时,数据处理模块可以包括至少一个处理资源,若接收到数据后,全部的处理资源都处于占用状态,则表明超出自身处理能力;反之,若接收到数据后,存在空闲的处理资源,则表明未超出自身处理能力。

处理资源是指对数据进行处理的资源,例如可以是进程、容器等。

另外,处理资源可以是能够动态增加的,以处理资源是容器为例,初始时,数据处理模块可以启动N(N为正整数)个容器,在接收到数据后,可以将所接收的数据分配给这N个容器进行处理。假设N个容器均被占用后,又接收到新的数据,数据处理模块可以动态增加预设个数的容器,例如,新增一个容器,并采用该新增的容器对接收的新的数据进行处理,依此类推,直至容器的数量增加到数量阈值M(M为正整数,且大于或等于N)。若容器的数量从N增加到M后,又接收到新的数据,且M个容器均被占用时,可以确定超出自身处理能力。

403、数据处理模块,向数据转发模块发送第一反馈信息。

其中,第一反馈信息用于表明超出数据处理模块的处理能力(或称为超出规则引擎的处理能力)。

另外,第一反馈信息中可以携带数据处理模块能够处理的最大数据量(或称为规则引擎能够处理的最大数据量),从而,数据转发模块可以基于待处理数据的当前数据量和最大数据量确定处理能力是否异常。

其中,数据处理模块可以基于历史统计信息获得上述的最大数据量。

即,统计所述处理方在预设时段内的已处理的历史数据量;基于所述已处理的历史数据量,确定所述最大数据量。

其中,预设时段可以是指从开始处理数据的时间点t1到确定超出自身处理能力的时间点t2之间的时间段,通过统计[t1,t2]这一时段的已处理的数据量,获得历史数据量,进而确定最大数据量。

例如,可以在t1作为统计起始点,从统计起始点开始进行已处理数据的数据量的统计,直至达到t2时刻结束统计,以获得历史数据量。

之后,可以将历史数据量作为最大数据量,或者,还可以基于预设算法对历史数据量进行运算后获得最大数据量。

本实施例中,基于历史统计信息获得最大数据量,可以根据实际情况灵活确定最大数据量,相对于固定设置等方式,灵活性更高,数据更准确。

404、数据处理模块,判断数据目的方是否具备数据接收能力,若是,执行406,否则执行405。

其中,数据处理模块在处理数据后,可以将处理后的数据发送至数据目的方后,若数据目的方不具备数据接收能力,数据处理模块可以接收到对应的响应消息,比如,数据目的方的响应消息是写超时,此时可以确定数据目的方不具备数据接收能力。

405、数据处理模块,向数据转发模块发送第三反馈信息。

数据目的方不具备数据接收能力时,数据处理模块可以向数据转发模块发送第三反馈信息,第三反馈信息用于表明数据目的方不具备数据接收能力。

406、数据处理模块,判断是否超出数据目的方的处理能力,若是,执行407,否则执行408。

其中,数据目的方在超出自身的处理能力时,可以向数据处理模块反馈表明超出自身处理能力的响应消息,数据处理模块基于该响应消息可以获知超出数据目的方的处理能力。数据目的方判断是否超出自身处理能力可以类似数据处理模块的判断流程。

另外,数据处理模块还可以统计已发送至数据目的方的数据量,以获得数据目的方能够处理的最大数据量,所统计的时段例如是从开始发送的时间点至接收到表明超出数据目的方的处理能力的响应消息的时间点。

407、数据处理模块,向数据转发模块发送第二反馈信息。

其中,第二反馈信息用于表明超出数据目的方的处理能力。

另外,第二反馈信息中可以携带数据目的方能够处理的最大数据量,从而,数据转发模块可以基于待处理数据的当前数据量和最大数据量确定处理能力是否异常。

408、数据处理模块,处理数据。

其中,数据处理模块可以基于预设规则对接收的数据进行处理,预设规则例如是将数据转换为数据目的方要求的格式,或者对所有数据取最大值等操作。

其中,408与402~407无时序限定关系,即,数据处理模块可以在确定未超出自身处理能力时,对接收的数据进行处理,而不需要等到全部判断都结束再处理数据。

数据处理模块在处理数据后,若数据目的方具备数据接收能力,且未超出数据目的方的处理能力,可以将处理后的数据发送至数据目的方。

若数据目的方异常(不具备数据接收能力,或者,超出数据目的方的处理能力),数据处理模块可以不发送数据至数据目的方,即实现了熔断机制,避免无意义的写操作对规则引擎的影响,提高资源利用率,避免资源浪费。

本实施例中,在超出规则引擎的处理能力时,数据处理模块可以向数据转发模块发送第一反馈信息,其中携带规则引擎能够处理的最大数据量,从而数据转发模块可以基于第一反馈信息确定是否发生异常;或者,在数据目的方不具备数据接收能力时,数据处理模块可以向数据转发模块发送第三反馈信息,其从而数据转发模块可以基于第三反馈信息确定是否发生异常;或者,在超出数据目的方的处理能力时,数据处理模块可以向数据转发模块发送第二反馈信息,其中携带数据目的方能够处理的最大数据量,从而数据转发模块可以基于第二反馈信息确定是否发生异常;即,数据转发模块可以基于数据处理模块的反馈信息准确地识别出处理方的处理能力是否异常。另外,数据处理模块可以具备统计功能,以获得最大数据量并携带在反馈信息中发送给数据转发模块,从而数据转发模块可以基于最大数据量判断处理能力是否异常。

图5是根据本公开实施例中的数据转发模块的部分处理流程示意图,如图5所示,该流程包括:

501、数据转发模块,判断处理方的处理能力是否异常,若否,执行502。

其中,关于处理能力是否异常的判断,以及,处理能力异常后的处理流程可以参见上述实施例的相关描述,在此不再详述。

502、数据转发模块,判断本地存储器内是否存储本地数据,若是,执行503-504,否则执行505。

503、数据转发模块,读取至少部分的本地数据,以获得读取数据。

其中,数据转发模块所读取的本地数据,可以称为读取数据。

处理能力非异常,即正常时,是指未超出规则引擎的处理能力,且数据目的方具备数据接收能力,且未超出数据目的方的处理能力。

由于未超出处理方(规则引擎和数据目的方的任一方)的处理能力,即待处理数据的当前数据量小于或等于任一方的最大数据量。若当前数据量小于规则引擎的最大数据量与数据目的方的最大数据量之间的最小值,则可以计算上述两个最大数据量之间的最小值与当前数据量之间的差值,该差值可以称为第二差值,在已存储的数据中,随机或采用其他方式,读取数据量为该第二差值的本地数据,作为读取数据。

504、数据转发模块,将待处理数据和读取数据转发至数据处理模块。

例如,第二差值是2K,当前数据量是1K,则可以读取1K的本地数据作为读取数据。

相应地,可以将1K的待处理数据和1K的读取数据发送至数据处理模块。

505、数据转发模块,将待处理数据转发至数据处理模块。

若本地存储器内未存储数据,则可以直接地(实时地)将待处理数据转发至数据处理模块。

数据处理模块接收到数据后,可以参见图3和/或图4所示的实施例的相关描述,在此不再详述。

本实施例中,在处理方的处理能力正常时,可以对待处理数据进行处理,或者还可以读取本地数据,对本地数据进行处理,以实现规则引擎的容错性。

图6是根据本公开第三实施例的示意图,本实施例提供一种规则引擎,该规则引擎600包括:数据转发模块601和本地存储器602。

数据转发模块601用于接收数据来源方发送的待处理数据;若处理方的处理能力异常,在所述待处理数据中确定待存储数据;其中,所述处理方包括:所述规则引擎,和/或,所述待处理数据对应的数据目的方;以及,将所述待存储数据存储在所述规则引擎的本地存储器内;

本地存储器602用于存储所述待存储数据。

本实施例中,处理方的处理能力异常时,规则引擎在待处理数据中确定待存储数据,并将待存储数据存储在本地存储器内,相对于直接反馈拒绝消息的方式,可以提高规则引擎的容错性;另外,相对于借助消息中间件的方式,本实施例存储在本地的方式,可以无需引入其他部件,降低复杂性,从而可以轻量化地应对处理能力异常的情况。

如图7所示,规则引擎600还可以包括:数据处理模块603。

数据处理模块603用于在所述处理方的处理能力异常时,向所述数据转发模块发送反馈信息;所述数据转发模块601还用于基于所述反馈信息确定所述处理能力是否异常。

本实施例中,数据处理模块在确定处理方的处理能力异常时,可以向数据转发模块发送反馈信息,数据转发模块基于反馈信息可以确定处理能力是否异常,以便基于是否异常进行对应处理,进而轻量化地应对处理能力异常的情况。

一些实施例中,所述反馈信息中携带所述处理方能够处理的最大数据量;所述数据转发模块601进一步用于:基于所述反馈信息,获取所述最大数据量;以及,若所述待处理数据的当前数据量大于所述最大数据量,确定所述处理能力异常;和/或,确定所述当前数据量与所述最大数据量的第一差值;以及,在所述待处理数据中,选择数据量为所述第一差值的待处理数据,作为所述待存储数据。

此时的反馈信息可以为上述实施例中的第一反馈信息和/或第二反馈信息。

本实施例中,可以基于待处理数据的当前数据量与处理方能够处理的最大数据量确定处理方的处理能力是否异常,从而可以及时识别出超出处理方的处理能力的情况,实现及时准确地识别出异常情况。

一些实施例中,所述数据转发模块601还用于:若所述待处理数据的当前数据量小于所述最大数据量,且所述本地存储器内不存在本地数据,将所述待处理数据发送至所述数据处理模块;或者,若所述待处理数据的当前数据量小于所述最大数据量,且所述本地存储器内存在本地数据,确定所述最大数据量与所述当前数据量之间的第二差值,读取数据量为所述第二差值的本地数据,作为读取数据;将所述待处理数据和所述读取数据发送至所述数据处理模块。

本实施例中,在处理方的处理能力正常时,可以对待处理数据进行处理,或者还可以读取本地数据,对本地数据进行处理,以实现规则引擎的容错性。

一些实施例中,所述数据处理模块603还用于:统计所述处理方在预设时段内的已处理的历史数据量;基于所述已处理的历史数据量,确定所述最大数据量;将所述最大数据量携带在所述反馈信息中。

本实施例中,数据处理模块可以具备统计功能,以获得最大数据量并携带在反馈信息中发送给数据转发模块,从而数据转发模块可以基于最大数据量判断处理能力是否异常。

一些实施例中,所述反馈信息用于表明所述数据目的方不具备数据接收能力;所述数据转发模块601进一步用于:基于所述反馈信息,确定所述处理能力异常;和/或,在所述待处理数据中,选择预设比例的数据作为所述待存储数据。

此时的反馈信息可以为上述实施例中的第三反馈信息。

本实施例中,可以基于处理方(具体是数据目的方)是否具备接收数据的能力确定处理方的处理能力是否异常,从而可以及时识别出不具备数据接收能力的情况,实现及时准确地识别出异常情况。

图8是根据本公开第五实施例的示意图,本实施例提供一种数据处理装置,该装置800包括:接收模块801、确定模块802和存储模块803。

接收模块801用于接收数据来源方发送的待处理数据;

确定模块802用于若处理方的处理能力异常,在所述待处理数据中确定待存储数据;其中,所述处理方包括:规则引擎,和/或,所述待处理数据对应的数据目的方;

存储模块803用于将所述待存储数据存储在所述规则引擎的本地存储器内。

其中,该装置可以位于规则引擎内。

本实施例中,处理方的处理能力异常时,规则引擎在待处理数据中确定待存储数据,并将待存储数据存储在本地存储器内,相对于直接反馈拒绝消息的方式,可以提高规则引擎的容错性;另外,相对于借助消息中间件的方式,本实施例存储在本地的方式,可以无需引入其他部件,降低复杂性,从而可以轻量化地应对处理能力异常的情况。

一些实施例中,所述确定模块802还用于:若所述处理方具备数据接收能力,获取所述处理方能够处理的最大数据量;若所述待处理数据的当前数据量大于所述最大数据量,确定所述处理能力异常。

本实施例中,可以基于待处理数据的当前数据量与处理方能够处理的最大数据量确定处理方的处理能力是否异常,从而可以及时识别出超出处理方的处理能力的情况,实现及时准确地识别出异常情况。

一些实施例中,所述确定模块802进一步用于:确定所述当前数据量与所述最大数据量的第一差值;在所述待处理数据中,选择数据量为所述第一差值的待处理数据,作为所述待存储数据。

本实施例中,基于当前数据量与最大数据量的第一差值,确定待存储数据,可以将超出处理能力的数据进行本地存储,以轻量化地实现具备容错性的规则引擎。

一些实施例中,该装置800还包括:

转发模块,用于若所述待处理数据的当前数据量小于所述最大数据量,且所述本地存储器内不存在本地数据,对所述待处理数据进行处理后,发送至所述数据目的方;或者,若所述待处理数据的当前数据量小于所述最大数据量,且所述本地存储器内存在本地数据,确定所述最大数据量与所述当前数据量之间的第二差值,读取数据量为所述第二差值的本地数据,作为读取数据;以及,对所述待处理数据和所述读取进行处理后,发送至所述数据目的方。

本实施例中,在处理方的处理能力正常时,可以对待处理数据进行处理,或者还可以读取本地数据,对本地数据进行处理,以实现规则引擎的容错性。

一些实施例中,该装置800还包括:

统计模块,用于统计所述处理方在预设时段内的已处理的历史数据量;以及,基于所述已处理的历史数据量,确定所述最大数据量。

本实施例中,数据处理模块可以具备统计功能,以获得最大数据量并携带在反馈信息中发送给数据转发模块,从而数据转发模块可以基于最大数据量判断处理能力是否异常。

一些实施例中,所述确定模块802还用于:若所述处理方包括所述数据目的方,且确定所述数据目的方不具备数据接收能力,确定所述处理能力异常。

本实施例中,可以基于处理方(具体是数据目的方)是否具备接收数据的能力确定处理方的处理能力是否异常,从而可以及时识别出不具备数据接收能力的情况,实现及时准确地识别出异常情况。

一些实施例中,所述确定模块802进一步用于:在所述待处理数据中,选择预设比例的数据作为所述待存储数据。

本实施例中,选择预设比例的数据作为所述待存储数据,可以在数据目的方不具备数据接收能力时,将全部或近似全部的待处理数据进行本地存储,以轻量化地实现具备容错性的规则引擎。

可以理解的是,本公开实施例中,不同实施例中的相同或相似内容可以相互参考。

可以理解的是,本公开实施例中的“第一”、“第二”等只是用于区分,不表示重要程度高低、时序先后等。

本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。

根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。

图9示出了可以用来实施本公开的实施例的示例电子设备900的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备900还可以表示各种形式的移动装置,诸如,个人数字助理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。

如图9所示,电子设备900包括计算单元901,其可以根据存储在只读存储器(ROM)902中的计算机程序或者从存储单元909加载到随机访问存储器(RAM)903中的计算机程序,来执行各种适当的动作和处理。在RAM 903中,还可存储电子设备900操作所需的各种程序和数据。计算单元901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。

电子设备900中的多个部件连接至I/O接口905,包括:输入单元906,例如键盘、鼠标等;输出单元907,例如各种类型的显示器、扬声器等;存储单元908,例如磁盘、光盘等;以及通信单元909,例如网卡、调制解调器、无线通信收发机等。通信单元909允许电子设备900通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。

计算单元901可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元901的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元901执行上文所描述的各个方法和处理,例如数据处理方法。例如,在一些实施例中,数据处理方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元908。在一些实施例中,计算机程序的部分或者全部可以经由ROM 902和/或通信单元909而被载入和/或安装到电子设备900上。当计算机程序加载到RAM 903并由计算单元901执行时,可以执行上文描述的数据处理方法的一个或多个步骤。备选地,在其他实施例中,计算单元901可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行数据处理方法。

本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。

用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程负载均衡装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。

在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。

可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。

计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务("Virtual Private Server",或简称"VPS")中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。

应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。

上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

技术分类

06120115687636