一种数据处理方法及其装置与流程

文档序号:20187101发布日期:2020-03-27 19:13阅读:137来源:国知局
一种数据处理方法及其装置与流程

本申请涉及计算机技术领域,尤其涉及一种数据处理方法及其装置。



背景技术:

随着互联网的发展,日常使用的软件越来越偏向于网络应用程序,而随着我们的访问前端(例如,移动终端、计算机等)的多样化,网络应用变得越来越方便,也越来越流行,与之相对应的就是前端与后端的开发和构成的分离,为了能够给不同的前端提供统一的界面,通常采用api架构来实现。而在此前提下,前端与后端的交互非常频繁。目前存在由于网络抖动或组件处理缓慢等原因所导致的前端与后端数据不一致的情况,举例来说,用户经由前端(例如,移动终端)向后端服务器发出请求后,虽然后端服务器执行了针对所述请求的操作但前端在短时间内没有收到后端服务器发出的响应。因此,现有技术需要一种能够实现前端与后端数据一致性的技术方案。



技术实现要素:

本申请的主要目的在于提供一种数据处理方法及其装置,旨在解决以上提到的前端与后端数据不一致的问题。

本申请的示例性实施例提供一种数据处理方法,包括:确定与应用程序对应的预留区域中是否存在包括一个或多个请求副本的请求副本队列,其中,所述一个或多个请求副本与所述应用程序发出的一个或多个数据请求对应;若存在,则将所述请求副本队列中的每个请求副本分别发送到对应的目标应用。

本申请的另一示例性实施例一种计算机可读存储介质,其上存储有计算机指令,其特征在于,所述指令被执行时实现上述方法。本申请的另一示例性实施例提供一种数据处理装置,包括:处理器;以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:确定与应用程序对应的预留区域中是否存在包括一个或多个请求副本的请求副本队列,其中,所述一个或多个请求副本与所述应用程序发出的一个或多个数据请求对应;若存在,则将所述请求副本队列中的每个请求副本分别发送到对应的目标应用。

本申请的示例性实施例提供一种数据处理方法,包括:将与来自源端应用的用户请求对应的用户请求副本写入预留区域;将所述预留区域内包括所述用户请求副本的用户请求副本组发送到对应的目标应用;判断是否从对应的目标应用接收到响应信息;若接收到响应信息,则根据所述响应信息更新所述预留区域。

本申请的另一示例性实施例一种计算机可读存储介质,其上存储有计算机指令,其特征在于,所述指令被执行时实现上述方法。

本申请的另一示例性实施例提供一种数据处理装置,包括:处理器;以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:将与来自源端应用的用户请求对应的用户请求副本写入预留区域;将所述预留区域内包括所述用户请求副本的用户请求副本组发送到对应的目标应用;判断是否从对应的目标应用接收到响应信息;若接收到响应信息,则根据所述响应信息更新所述预留区域。本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:

本申请的示例性实施例的数据处理方法及其装置通过设置预留区域对请求副本进行处理,具体来说,通过利用重试机制对预留区域内的请求副本执行统一调度,从而保证了前端与后端的数据一致性。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是示出了根据本申请的示例性实施例的数据处理方法的流程图;

图2是示出了根据本申请的示例性实施例的请求副本的结构的示图;

图3是示出了根据本申请的示例性实施例的数据处理方法应用的场景图;

图4是示出了根据本申请的示例性实施例的数据处理装置的框图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

以下结合附图,详细说明本申请各实施例提供的技术方案。

图1是示出了根据本申请的示例性实施例的数据处理方法的流程图。

如图1所述,在步骤s110,确定在与应用程序对应的预留区域中是否存在包括一个或多个请求副本的请求副本队列,其中,所述一个或多个请求副本与所述应用程序发出的一个或多个数据请求对应。具体来说,可先设置针对应用程序的预留区域。所述预留区域是用户(例如,技术人员)根据需要预先设置的区域。举例来说,所述预留区域通常设置在数据库服务器中,这样可以有效防止由于应用程序的服务器异常导致请求数据丢失。随后,响应于应用程序发出数据请求,在所述预留区域中生成与所述应用程序发出的数据请求对应的请求副本,以下将结合图2具体说明请求副本的结构。

如图2所示,每个请求副本可包括每个请求副本的标识信息、与每个请求副本对应的数据请求的内容以及与数据请求的内容中包括的每个目标应用对应的目标应用信息,其中,每个请求副本对应的数据请求的内容可根据数据请求获得,目标应用信息的数量取决于数据请求中涉及的目标应用的数量。根据本发明的示例性实施例,目标应用信息可包括每个目标应用的名称以及与每个目标应用对应的响应信息,可选地,所述目标应用信息还可包括由数据请求确定的针对每个目标应用的请求内容。

举例来说,假设某一支付应用程序发出请求,请求内容为“支付b用户10块钱”,而该请求内容对应两个目标应用,需两个目标应用均返回响应信息后,与该请求对应的请求副本方可从预留区域中清除,根据以上所述的请求副本的格式,与该请求对应的请求副本包括134332435、“支付b用户十块钱”、“确认a的余额大于10块,null”、“完成10块转账,null”,其中,134332435是标识信息,“支付b用户十块钱”是数据请求的请求内容,“完成10块转账,null”是与应用x对应的目标应用内容,而“应用y,null”是与应用y对应的目标应用信息。也就是说,由于该请求内容对应两个目标应用(x和y),所以在请求副本中包括两个目标应用信息。因此,与该请求对应的请求副本可以是134332435、“支付b用户十块钱”、“确认a的余额大于10块,null”、“完成10块转账,null”。当获得对应的目标应用的响应信息时,可对应修改所述请求副本的目标应用信息,例如,在从目标应用x接收到响应信息时,则将请求副本修改为134332435、“支付b用户十块钱”、“确认a的余额大于10块,success”、“完成10块转账,null”。并在从目标应用y接收到响应信息时,则将请求副本134332435、“支付b用户十块钱”、“确认a的余额大于10块,success”、“完成10块转账,null”修改为134332435、“支付b用户十块钱”、“确认a的余额大于10块,success”、“完成10块转账,success”。随后,生成的多个请求副本形成请求副本队列,所述请求副本队列可以以队列或者表格的形式存在于所述预留区域中。

根据本申请的示例性实施例,可通过轮询的方式周期性地确定在所述预留区域中是否存在请求副本/请求副本队列,例如,可通过设置定时器(timer)以轮询的方式周期性地确定在所述预留区域中是否存在请求副本/请求副本队列。具体来说,可根据网络环境确定轮询速度,随后,按照确定的轮询速度周期性地确定在所述预留区域中是否存在包括一个或多个请求副本的请求副本队列,其中,网络环境可包括网络丢包率、网络负载情况等。

举例来说,在确定网络丢包率大于10%的情况下,可按照每秒最多600条请求的速度轮询预留区域内的请求副本,如果网络丢包率大于50%的情况下,可按照每秒最多300条请求的速度轮询预留区域内的请求副本,如果网络丢包率大于90%的情况下,可按照每秒最多0条请求的速度轮询预留区域内的请求副本,也就是说,在丢包率大于90%的情况下,可暂停处理。

根据本申请的示例性实施例,还可对所述请求副本队列中的请求副本进行排序,也就是说,确定所述请求副本的优先级,举例来说,可按照每个请求副本的生成时间确定每个请求副本的优先级,生成时间越长优先级越高,或者可根据每个请求副本所对应的目标应用的数量,数量越多优先级越高,或者可根据数据请求的类型确定与所述数据请求对应的请求副本的优先级,例如,可将查询类的请求的优先级较低。或者可根据发出请求的用户的级别来确定与所述数据请求对应的请求副本的优先级,例如,vip用户发出的数据请求对应的请求副本的优先级高。此外,还可根据两个或两个以上的指标来设置请求副本的优先级。总而言之,可按照所述请求副本队列中的每个请求副本的生成时间、对应的目标应用的数量、对应的数据请求的类型和调用者的级别中的一个或组合对所述请求副本队列中的每个请求副本设置优先级。

若在步骤s110中确定在所述预留区域中存在包括一个或多个请求副本的请求副本队列,则执行步骤s120,在步骤s120,将所述请求副本队列中的请求副本分别发送到对应的目标应用。在将所述请求副本队列中的请求副本分别发送到对应的目标应用后可能会面临两种情况:第一种情况是在预定时间段内接收到来自目标应用的响应信息,第二种情况是在预定时间段内未接收到来自目标应用的响应信息。

第一种情况说明应用程序成功对目标应用发出请求,目标应用在成功处理请求后,将对请求的响应信息成功地返回了应用程序,针对这种情况,应用程序可将预留区域内与该请求对应的请求副本清除,例如,可直接将请求副本相关的数据从数据库中释放。可选地,根据来自目标应用的响应信息,所述应用程序可相应地更新数据库。

第二种情况说明应用程序成功对目标应用发出请求,但目标应用由于自身原因(例如,处理能力或者网络问题等)未能对所述请求进行处理,或者目标应用已对所述请求进行处理,但由于网络抖动等问题未能将响应信息在预定时间内发送到应用程序。也就是说,在将所述请求副本队列中的每个请求副本分别发送到对应的目标应用后,在预定时间段内未接收到来自对应的目标应用的响应信息,则将未接收到响应信息的请求副本保留在所述预留区域内。随后,可继续执行步骤s110,直至所述预留区域内不存在请求副本。也就是说,只要预留区域内还存在请求副本,则可循环向与请求副本对应的目标应用发送请求。

可选地,所述预定时间段是用户(例如,技术人员)在实际应用中根据需要进行设定的,例如,所述预定时间段可设置为0.3微秒。

为了更清楚地说明本申请的示例性实施例,以下将参照图3进行进一步解释,图3示出了根据本申请的示例性实施例的数据处理方法应用的场景图。

如图3所示,终端100发出的请求1、请求2、请求3和请求4在预留区域内生成请求副本1、请求副本2、请求副本3和请求副本4,应注意,为了便于解释,在图3中仅示出了4个请求副本,但是请求副本的数量不限于此。随后,预留区域内的4个请求副本分别向对应的终端200、300和400发送请求。从图3可以看出,所述请求副本面临三种情况。

第一种情况是请求副本1与请求副本2发送至同一终端200,终端200在对请求副本1和请求副本2进行处理后,向终端100发送响应信息,终端100根据响应信息更新数据库,同时清除预留区域内的请求副本1和请求副本2。

第二种情况是终端100将请求副本3发送到终端300之后,终端300对请求副本3中的请求进行响应,生成响应信息,并将响应信息发送到终端100,但发送失败,导致终端100未能在预定时间段内收到响应信息,这样,请求副本3继续保留在预留区域内。

第三种情况是终端100将请求副本4发送到终端400之后,终端400未能对请求副本4中包含的请求进行响应,因此,终端100未能在预定时间段内收到响应信息,这样,请求副本4继续保留在预留区域内。

如此,预留区域内还存在请求副本3和请求副本4,随后,终端100可周期性地将请求副本3和请求副本4分别发送到终端300和终端400,直至预留区域内不存在请求副本。

应注意,此时终端100可持续地发出数据请求,同时在预留区域内生成请求副本,这样,生成的请求副本可按照时间顺序排在请求副本4的后面,或者可按照用户预设的顺序进行排序。

根据本申请的示例性实施例,提供一种数据处理方法,所述方法包括:将与来自源端应用的用户请求对应的用户请求副本写入预留区域;将所述预留区域内包括所述用户请求副本的用户请求副本组发送到对应的目标应用;判断是否从对应的目标应用接收到响应信息;若接收到响应信息,则根据所述响应信息更新所述预留区域。

可选地,若接收到响应信息则根据所述响应信息更新所述预留区域包括:若接收到所述响应信息,则在接收到所述响应信息后,根据所述响应信息将所述预留区域内与所述响应信息对应的用户请求副本清除。

可选地,若未接收到响应信息,则将所述预留区域内与未接收到响应信息的用户请求副本保留在所述预留区域内。

可选地,所述方法还包括:响应于接收到来自源端应用的另一用户请求副本,将生成与所述另一用户请求对应的另一用户请求副本;将所述另一用户请求副本添加到所述用户请求副本组。

可选地,所述用户请求副本包括所述用户请求副本的标识信息、所述用户请求的内容以及与所述用户请求的内容中包括的每个目标应用分别对应的目标应用信息。

综上所述,本申请的示例性实施例的数据处理方法通过设置预留区域对请求副本进行处理,具体来说,通过利用重试机制对预留区域内的请求副本执行统一调度,从而保证了前端与后端的数据一致性。更进一步地,通过对请求副本队列中的请求副本设置优先级,使得可将更需要的请求优先发送到应用程序,满足开发需求。

为了更清楚地明白本申请的示例性实施例的发明构思,以下将参照图4描述本申请的示例性实施例的数据处理装置的框图。本领域普通技术人员将理解:图4中的装置仅示出了与本示例性实施例相关的组件,所述装置中还包括除了图4中示出的组件之外的通用组件。

图4示出本申请的示例性实施例的数据处理装置的框图。参考图4,在硬件层面,该数据处理装置包括处理器、内部总线和计算机可读存储介质,其中,所述计算机可读存储介质包括易失性存储器和非易失性存储器。处理器从非易失性存储器中读取对应的计算机程序然后运行。当然,除了软件实现方式之外,本申请并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。

具体来说,所述处理器执行以下操作:确定与应用程序对应的预留区域中是否存在包括一个或多个请求副本的请求副本队列,其中,所述一个或多个请求副本与所述应用程序发出的一个或多个数据请求对应;若存在,则将所述请求副本队列中的每个请求副本分别发送到对应的目标应用。

可选地,所述一个或多个请求副本中的每个请求副本包括每个请求副本的标识信息、与每个请求副本对应的数据请求的内容以及与数据请求的内容中包括的每个目标应用分别对应的目标应用信息。

可选地,目标应用信息包括目标应用的名称、与目标应用对应的响应信息和/或针对目标应用的请求内容。

可选地,所述处理器还可执行以下操作:响应于由所述应用程序发出的数据请求,生成与所述数据请求对应的请求副本;将所述请求副本添加到请求副本队列。

可选地,所述处理器在实现步骤在将所述请求副本队列中的每个请求副本分别发送到对应的目标应用后包括:在预定时间段内接收到来自对应的目标应用的响应信息;将所述预留区域内的与响应信息对应的请求副本清除。

可选地,所述处理器在实现步骤将所述请求副本队列中的请求副本分别发送到对应的目标应用前包括:对所述请求副本队列中的每个请求副本设置优先级。

可选地,所述处理器在实现步骤对所述请求副本队列中的每个请求副本设置优先级包括:按照所述请求副本队列中的每个请求副本的生成时间、对应的目标应用的数量、对应的数据请求的类型和调用者的级别中的一个或组合对所述请求副本队列中的每个请求副本设置优先级。

可选地,所述处理器在实现步骤将所述请求副本队列中的请求副本分别发送到对应的目标应用包括:将所述请求副本队列中的请求副本按照每个请求副本的优先级顺序分别发送到对应的目标应用。

可选地,所述处理器在实现步骤确定在所述预留区域中是否存在包括一个或多个请求副本的请求副本队列包括:根据网络环境确定轮询速度;按照确定的轮询速度周期性地确定与应用程序对应的预留区域中是否存在包括一个或多个请求副本的请求副本队列。

根据本申请的示例性实施例,所述处理器可执行以下操作:将与来自源端应用的用户请求对应的用户请求副本写入预留区域;将所述预留区域内包括所述用户请求副本的用户请求副本组发送到对应的目标应用;判断是否从对应的目标应用接收到响应信息;若接收到响应信息,则根据所述响应信息更新所述预留区域。

可选地,所述处理器在实现步骤若接收到响应信息则根据所述响应信息更新所述预留区域包括:若接收到所述响应信息,则在接收到所述响应信息后,根据所述响应信息将所述预留区域内与所述响应信息对应的用户请求副本清除。

可选地,所述处理器若未接收到响应信息则将所述预留区域内与未接收到响应信息的用户请求副本保留在所述预留区域内。

可选地,所述处理器还包括执行以下步骤:响应于接收到来自源端应用的另一用户请求副本,将生成与所述另一用户请求对应的另一用户请求副本;将所述另一用户请求副本添加到所述用户请求副本组。

可选地,所述用户请求副本包括所述用户请求副本的标识信息、所述用户请求的内容以及与所述用户请求的内容中包括的每个目标应用分别对应的目标应用信息。综上所述,本申请的示例性实施例的数据处理装置通过设置预留区域对请求副本进行处理,具体来说,通过利用重试机制对预留区域内的请求副本执行统一调度,从而保证了前端与后端的数据一致性。更进一步地,通过对请求副本队列中的请求副本设置优先级,使得可将更需要的请求优先发送到应用程序,满足开发需求。

需要说明的是,实施例1所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤21和步骤22的执行主体可以为设备1,步骤23的执行主体可以为设备2;又比如,步骤21的执行主体可以为设备1,步骤22和步骤23的执行主体可以为设备2;等等。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1