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

数据处理方法及装置、设备和介质与流程

2022-04-09 04:58:21 来源:中国专利 TAG:


1.本公开涉及计算机技术领域,尤其涉及数据处理领域,具体涉及一种数据处理的方法、装置、电子设备、计算机可读存储介质和计算机程序产品。


背景技术:

2.数据处理系统中包括服务器和数据库,对于分布式数据处理系统,多个服务器可能分布在不同的位置,并且多个服务器共享数据库资源。当数据流量较大时,数据处理系统的性能将受到影响。
3.在此部分中描述的方法不一定是之前已经设想到或采用的方法。除非另有指明,否则不应假定此部分中描述的任何方法仅因其包括在此部分中就被认为是现有技术。类似地,除非另有指明,否则此部分中提及的问题不应认为在任何现有技术中已被公认。


技术实现要素:

4.本公开提供了一种数据处理的方法、装置、电子设备、计算机可读存储介质和计算机程序产品。
5.根据本公开的一方面,提供了一种数据处理方法。该方法包括:获取至少一个待发送数据;获取与所述至少一个待发送数据相对应的锁标识以及初始锁值,初始锁值为至少一个待发送数据的数量;基于所述锁标识以及所述初始锁值,生成加锁请求;向缓存服务器发送所述加锁请求;以及响应于从所述缓存服务器接收到第一反馈,通过发送端口发送所述至少一个待发送数据,其中,所述第一反馈指示加锁成功。
6.根据本公开的另一方面,提供了一种数据处理方法。该方法包括:响应于从应用服务器接收到加锁请求,判断是否存在未释放的锁,其中,所述加锁请求是基于锁标识和至少一个待发送数据的数量而生成的;响应于判定不存在未释放的锁,基于所述锁标识执行加锁;以及向所述应用服务器发送第一反馈,其中,所述第一反馈指示加锁成功。
7.根据本公开的另一方面,提供了一种数据处理装置。该装置包括:第一获取单元,被配置为获取至少一个待发送数据;第二获取单元,被配置为获取与所述至少一个待发送数据相对应的锁标识以及初始锁值,初始锁值为至少一个待发送数据的数量;加锁请求生成单元,被配置为基于所述锁标识以及所述初始锁值,生成加锁请求;加锁请求发送单元,被配置为向缓存服务器发送所述加锁请求;以及数据发送单元,被配置为响应于从所述缓存服务器接收到第一反馈,通过发送端口发送所述至少一个待发送数据,其中,所述第一反馈指示加锁成功。
8.根据本公开的另一方面,提供了一种数据处理装置。该装置包括:判断单元,被配置为响应于从应用服务器接收到加锁请求,判断是否存在未释放的锁,其中,所述加锁请求是基于锁标识和至少一个待发送数据的数量而生成的;加锁单元,被配置为响应于判定不存在未释放的锁,基于所述锁标识执行加锁;以及加锁反馈单元,被配置为向所述应用服务器发送第一反馈,其中,所述第一反馈指示加锁成功。
9.根据本公开的另一方面,提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述数据处理方法。
10.根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行上述数据处理方法。
11.根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,其中,所述计算机程序在被处理器执行时实现上述数据处理方法。
12.根据本公开的一个或多个实施例,可以减少或避免在数据发送频率较高的情况下服务器宕机或卡死。
13.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
14.附图示例性地示出了实施例并且构成说明书的一部分,与说明书的文字描述一起用于讲解实施例的示例性实施方式。所示出的实施例仅出于例示的目的,并不限制权利要求的范围。在所有附图中,相同的附图标记指代类似但不一定相同的要素。
15.图1示出了根据本公开示例性实施例的数据处理方法的流程图;
16.图2示出了根据本公开示例性实施例的数据处理方法的流程图;
17.图3示出了根据本公开示例性实施例的数据处理方法的流程图;
18.图4示出了根据本公开示例性实施例的数据处理方法的流程图;
19.图5是示出利用本公开的数据处理方法来发送数据的示例过程的示意图;
20.图6示出了根据本公开示例性实施例的数据处理装置的结构框图;
21.图7示出了根据本公开示例性实施例的数据处理装置的结构框图;以及
22.图8示出了根据本公开实施例的电子设备的框图。
具体实施方式
23.以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
24.在本公开中,除非另有说明,否则使用术语“第一”、“第二”等来描述各种要素不意图限定这些要素的位置关系、时序关系或重要性关系,这种术语只是用于将一个元件与另一元件区分开。在一些示例中,第一要素和第二要素可以指向该要素的同一实例,而在某些情况下,基于上下文的描述,它们也可以指代不同实例。
25.在本公开中对各种所述示例的描述中所使用的术语只是为了描述特定示例的目的,而并非旨在进行限制。除非上下文另外明确地表明,如果不特意限定要素的数量,则该要素可以是一个也可以是多个。此外,本公开中所使用的术语“和/或”涵盖所列出的项目中的任何一个以及全部可能的组合方式。
26.相关技术中,当在短时间内需要发送的数据数量过多时,可能出现数据处理系统宕机、卡死的情况,从而导致数据发送失败。
27.申请人发现,服务器从数据库中、或从资源文件中读取到待发送数据后,经过对数据进行简单的处理,即调用发送端口以向数据消费者发送数据。在数据发送频率不高的情况下,通常不会导致系统卡死。然而,在数据发送频率较高的情况下,由于服务器频繁调用发送端口,导致发送端口来不及处理大量数据,从而引起数据大量积压,最终导致服务器宕机或卡死。
28.为解决上述问题,本公开提供了一种数据处理方法,通过在获取待发送数据后,基于锁标识和待发送数据的数量生成加锁请求,并且在成功加锁后,才通过端口发送待发送数据,从而使得基于其加锁的待发送数据能够被顺利发送;而对于没有成功加锁的数据,应用服务器不调用发送端口,从而避免应用服务器频繁调用发送端口,导致发送端口来不及处理大量数据而引起数据大量积压,由此能够减少或避免在数据发送频率较高的情况下服务器宕机或卡死。
29.以下将结合附图,详细描述本公开的实施例。
30.首先,参考图1和图2,对在应用服务器处执行的数据处理方法100加以说明。
31.图1示出了根据本公开示例性实施例的数据处理方法100的流程图。如图1所示,数据处理方法100包括:步骤s110、获取至少一个待发送数据;步骤s120、获取与至少一个待发送数据相对应的锁标识以及初始锁值,所述初始锁值为至少一个待发送数据的数量;步骤s130、基于锁标识以及初始锁值,生成加锁请求;步骤s140、向缓存服务器发送加锁请求;以及步骤s150、响应于从缓存服务器接收到第一反馈,通过发送端口发送至少一个待发送数据,其中,所述第一反馈指示加锁成功。
32.由此,通过在获取待发送数据后,应用服务器基于锁标识和待发送数据的数量生成加锁请求,将生成的加锁请求发送至缓存服务器以请求加锁,成功加锁后,应用服务器能够通过端口发送待发送数据,并且执行加锁的过程与待发送数据的数量相关,从而使得基于其加锁的待发送数据能够被顺利发送;而在此期间,如果其他的待发送数据被应用服务器获取,但是基于该其他的数据无法成功加锁,应用服务器也就不会调用发送端口来发送该其他的数据,从而避免应用服务器频繁调用发送端口,导致发送端口来不及处理大量数据而引起数据大量积压,由此能够减少或避免在数据发送频率较高的情况下服务器宕机或卡死。
33.在一个示例中,至少一个待发送数据可以是来自数据库中的数据,例如是待发布的活动文字信息;至少一个待发送数据也可以是来自资源文件的数据,例如是待发布的活动图片或视频;至少一个待发送数据还可以是待发送的实时短消息。
34.根据一些实施例,在步骤s120,获取与至少一个待发送数据相对应的锁标识可以包括:基于至少一个待发送数据的批次号,和/或基于至少一个待发送数据所包括的用户标识,生成锁标识。由此,通过利用与待发送数据相关的批次号或用户标识生成锁标识,无需复杂运算,能够更加简单地生成锁标识,并且由于批次号或用户标识具有唯一性,使得生成的锁标识能够唯一地对应待发送数据,从而使基于锁标识进行的加锁更加准确,避免错误加锁。
35.示例性地,所述待发送数据可以是一批数据(例如上千条数据),可以将这批待发
送数据的批次号作为锁标识,也可以基于这批待发送数据的批次号,生成与批次号相关联的锁标识。示例性地,当待发送数据是待发送的实时短消息时,短消息中包括消息发送方或消息接收方的用户标识(例如电话号码)。可以将用户标识作为锁标识,也可以基于用户标识生成与其相关联的锁标识。示例性地,锁标识可以是基于待发送数据的批次号以及待发送数据所包括的用户标识二者生成的。
36.在一个示例中,在步骤s130,基于锁标识以及至少一个待发送数据的数量,生成加锁请求,其中,加锁请求可以包括键值对。例如,以锁标识作为键(key),以待发送数据的数量作为相应的值(value)。
37.根据一些实施例,在步骤s130,加锁请求可以包括加锁的有效时间阈值,有效时间阈值用于指示缓存服务器在加锁时长达到有效时间阈值时释放锁。由此,在例如系统程序出现故障而长时间占用发送端口的情况下,能够在时间达到有效时间阈值时,及时释放锁,解除对发送端口的占用,避免阻止其他待发送消息的发送,保证数据发送的顺畅进行。可以理解的,也可以由缓存服务器来设定加锁的有效时间阈值。
38.作为示例,在步骤s140,可以向redis缓存服务器发送加锁请求。例如,可以采用redis的setnx或set命令,发送包括键值对{key,value}的加锁请求。
39.可以理解的是,可以将上述加锁的有效时间阈值写入键值对中,作为键值对中的值。例如{锁标识,待发送数据的数量,有效时间阈值}。进一步地,可以将包括该键值对的加锁请求发送至缓存服务器。
40.图2示出了根据本公开示例性实施例的数据处理方法的流程图。其中,步骤s210至步骤s250与上文中关于图1描述的步骤s110和步骤s150相同,在此不再赘述。
41.如图2所示,根据一些实施例,该数据处理方法还可以包括:步骤s260、根据预设规则向缓存服务器发送反馈消息,反馈消息用于指示缓存服务器对初始锁值进行更新,以得到更新后的锁值;以及步骤s270、响应于从缓存服务器接收到第二反馈,停止向发送端口发送待发送数据,其中,第二反馈指示锁被释放。
42.具体的,第二反馈是由缓存服务器基于更新后的锁值小于或等于释放阈值而生成的。
43.由此,应用服务器通过根据预设规则向缓存服务器发送反馈消息,并在接收到缓存服务器发送的指示锁被释放的第二反馈后,停止向发送端口发送数据,保证了只有在加锁成功的情况下,应用服务器才调用发送端口发送待发送数据,而一旦锁被释放,应用服务器便停止调用发送端口,从而进一步避免频繁调用发送端口,也避免由于长时间占用锁而使发送端口被长时间占用,无法发送其他数据的情况。在一个示例中,初始锁值可以是加锁请求中所包括的键值对中的value值,即待发送数据的数量。
44.根据一些实施例,在上述步骤s260,根据预设规则向缓存服务器发送反馈消息可以包括:响应于通过发送端口每发送成功一个待发送数据,向缓存服务器发送反馈消息,反馈消息用于指示缓存服务器将初始锁值减1,以得到更新后的锁值。在应用服务器处计数采用的方法,每次通过端口成功发送一个数据后,均指示缓存服务器将初始锁值减1,由此,当待发送数据均已通过发送端口成功发送后,锁能够被及时释放,避免长时间占用发送端口而降低其他数据的发送效率。
45.进一步地,根据一些实施例,上述步骤,响应于通过发送端口每发送成功一个待发
送数据,向缓存服务器发送反馈消息可以包括:响应于向发送端口每发送一个待发送数据,将累加值加1;以及响应于通过发送端口每发送成功一个待发送数据,将累加值减1,并且,反馈消息为累加值减1的消息。由此,利用应用服务器中的计数功能,在应用服务器确切地获悉发送端口已成功发送一个待发送数据后(例如应用服务器从发送端口接收到第三反馈,该第三反馈指示发送端口已成功发送一个待发送数据),将累加值减1,并将累加值减1的消息反馈给缓存服务器,使得缓存服务器处的锁值也能够相应地减1,确保成功地统计已成功发送的数据的数量,从而准确、及时地停止对发送端口的占用。
46.根据一些实施例,在步骤s260,根据预设规则向缓存服务器发送反馈消息可以包括:响应于确定已发送至发送端口但未发送成功的待发送数据的数量大于或等于预设阈值,向缓存服务器发送反馈消息,反馈消息用于指示缓存服务器基于预设阈值更新初始锁值。
47.在一些情况中,例如由于发送端口的容量限制,从应用服务器发送至发送端口的数据可能没有被及时发送,而在发送端口处积压。因此,可以将积压的待发送数据的数量与预设阈值(用户自定义的阈值)进行比较,若积压的待发送数据的数量超过预设阈值,应用服务器可以向缓存服务器发送反馈消息,指示缓存服务器及时更新锁的初始锁值,从而使得在发生数据积压的情况下,避免应用服务器长时间占用端口而使服务器卡死。
48.进一步地,根据一些实施例,在上述步骤s260,根据预设规则向缓存服务器发送反馈消息可以包括:响应于向发送端口每发送一个待发送数据,将累加值加1;并且在上述步骤,响应于确定已发送至发送端口但未发送成功的待发送数据的数量大于或等于预设阈值,向缓存服务器发送反馈消息可以包括:响应于确定累加值大于或等于预设阈值,向缓存服务器发送反馈消息。由此,利用应用服务器中的计数功能,在其每向发送端口发送一个数据后,均将累加值加1,在发生端口拥堵的情况下,该累加值不会接收到来自发送端口的第三反馈,即,累加值不相应地减少。随着应用服务器持续向发送端口发送数据,使得累加值持续增大。当应用服务器判断累加值大于或等于预设阈值后,便向缓存服务器发送反馈消息,指示缓存服务器基于累加值相应地更新锁值(例如指示缓存服务器将锁值减少累加值的量),从而避免在数据堵塞发送端口的情况下长时间占用端口而使服务器卡死。
49.进一步地,根据一些实施例,在上述步骤s260,根据预设规则向缓存服务器发送反馈消息还可以包括:响应于从发送端口接收到第三反馈,将累加值减1,其中,第三反馈指示发送端口已成功发送一个待发送数据。由此,利用应用服务器中的计数功能,在应用服务器确切地获悉发送端口的第三反馈(即,指示发送端口已成功发送一个待发送数据)后,将累加值减1,并将累加值减1的消息反馈给缓存服务器,使得缓存服务器处的锁值也能够相应地减1,确保在拥堵的数据成功发送后,应用服务器也能及时指示缓存服务器更新锁值,进一步避免在数据堵塞发送端口的情况下长时间占用端口而使服务器卡死。另一方面,随着数据逐条发送,累加值持续减1,直到减少到预设阈值以下,如果在发送端口处发生了持续拥堵,则累加值很快就会再次达到预设阈值,应用服务器从而再次向缓存服务器发送反馈消息,以使缓存服务器能够加快锁的释放,避免数据持续拥堵导致服务器卡死。
50.进一步地,根据一些实施例,该数据处理方法还可以包括:响应于确定已发送至发送端口但未发送成功的待发送数据的数量大于或等于预设阈值,停止向发送端口发送待发送数据。由此,当已发送至发送端口但未发送成功的待发送数据的数量大于或等于预设阈
值时,可以确定发送端口发生拥堵,应用服务器停止向发送端口继续发送数据,以避免在数据堵塞发送端口的情况下,端口接收更多的待发送数据而发生卡死。
51.进一步地,根据一些实施例,该数据处理方法还可以包括:响应于确定已发送至发送端口但未发送成功的待发送数据的数量大于或等于预设阈值,开始计时拥堵时长;以及响应于确定拥堵时长达到预设时长,再次向发送端口发送待发送数据。由此,当确定发送端口发生拥堵时,应用服务器暂停向发送端口发送数据,并在一定时间后恢复向发送端口发送数据,给予发送端口一定的时间来处理已经拥堵的待发送数据,在保证不发生卡死或宕机的前提下,提高数据发送效率。
52.下面将参考图3和图4,对在缓存服务器处执行的数据处理方法300加以说明。
53.图3示出了根据本公开示例性实施例的数据处理方法300的流程图。
54.如图3所示,数据处理方法300包括:步骤s310、响应于从应用服务器接收到加锁请求,判断是否存在未释放的锁,其中,加锁请求是基于锁标识和至少一个待发送数据的数量而生成的;步骤s320、响应于判定不存在未释放的锁,基于锁标识执行加锁;以及步骤s330、向应用服务器发送第一反馈,其中,第一反馈指示加锁成功。
55.由此,一方面,只有在不存在未释放的锁时,缓存服务器才执行加锁,保证了不会同时存在两个锁,只有加锁成功的应用服务器才能调用发送端口以发送数据,而未加锁成功的服务器需要等待加锁成功后才能调用发送端口以发送数据,从而避免应用服务器频繁调用发送端口,导致发送端口来不及处理大量数据而引起数据大量积压,由此能够减少或避免在数据发送频率较高的情况下服务器宕机或卡死。另一方面,由于执行加锁的过程与待发送数据的数量相关,从而使得基于其加锁的待发送数据能够被顺利发送。
56.可以理解的是,步骤s310中所述的加锁请求可以是如上文关于图1、图2描述的方法100中的加锁请求。
57.作为示例,在步骤s320,可以在redis缓存服务器处,基于setnx命令,响应于判定不存在未释放的锁,基于锁标识执行加锁。相应地,锁的初始锁值可以是键值对{key,value}中的value值,即待发送数据的数量。
58.图4示出了根据本公开示例性实施例的数据处理方法的流程图。其中,步骤s410至步骤s430与上文中关于图3描述的步骤s310和步骤s330相同,在此不再赘述。
59.如图4所示,根据一些实施例,该数据处理方法还可以包括:步骤s440、响应于从应用服务器接收到反馈消息,对初始锁值进行更新,以得到更新后的锁值,其中,初始锁值是至少一个待发送数据的数量;步骤s450、响应于更新后的锁值小于或等于释放阈值,基于锁标识,释放锁;以及步骤s460、向应用服务器发送第二反馈,其中,第二反馈指示锁被释放。
60.根据应用服务器发送的反馈消息,缓存服务器可以对初始锁值进行更新,当更新后的锁值小于或等于释放阈值时,将锁释放,由此,使得应用服务器停止调用发送端口,从而进一步避免应用服务器频繁调用发送端口,也避免由于长时间占用锁而使发送端口被长时间占用,无法发送其他数据的情况。
61.继续参考图4,根据一些实施例,所述加锁请求可以包括加锁的有效时间阈值。并且该数据处理方法还可以包括:步骤s470、响应于加锁成功开始计时加锁时长;以及:步骤s480、响应于加锁时长达到有效时间阈值,释放锁。
62.由此,在例如系统程序出现故障而长时间占用发送端口的情况下,能够在时间达
到有效时间阈值时,及时释放锁,解除应用服务器对发送端口的占用,避免阻止其他待发送消息的发送。
63.下面将参考图5,继续对根据本公开实施例的数据处理方法进行详细描述。
64.图5是示出利用本公开的数据处理方法来发送数据的示例过程的示意图。
65.如图5所示,数据源510可以是数据库、资源文件、或发送消息的用户设备。520是应用服务器,应用服务器可以是多台应用服务器,这里为了简洁,仅示出了一台应用服务器520。530是缓存服务器。540是发送端口。
66.在数据发送频率较高的情况下,例如在需要发送批量数据的场景中,数据源510中包括大量待发送数据(例如1万条待发送数据)。应用服务器520首先从数据源510处获取一个批次的数据(步骤s501),一个批次的数据可以是1千条待发送数据,一个批次的数据的数量由应用服务器520或数据传输链路的物理特性确定,这里仅以1千条待发送数据作为一个批次的数据为例。
67.进一步地,在步骤s502,应用服务器520可以获取与该1千条待发送数据相对应的锁标识。例如,服务器520可以将该1千条待发送数据的批次号作为锁标识;也可以基于该批次号生成一个相应的锁标识(例如锁标识为001)。
68.进一步地,在步骤s503,应用服务器520可以基于锁标识001以及待发送数据的数量1000,生成加锁请求,加锁请求可以包括键值对{001,1000}。加锁请求还可以包括加锁的有效时间阈值(例如2秒),在这种情况下,加锁请求可以包括键值对{001,1000,2}。并且,应用服务器520将包括键值对{001,1000,2}的加锁请求发送至缓存服务器530。
69.进一步地,缓存服务器530接收到来自应用服务器520的加锁请求,判断是否存在未释放的锁。这里,假定缓存服务器530判断不存在未释放的锁,则其基于锁标识001执行加锁,由此,批次号为001的一批数据被成功加锁。成功加锁后,缓存服务器530向应用服务器520发送第一反馈(步骤s504),通知应用服务器520加锁成功。此时,如果其他应用服务器向缓存服务器530发送加锁请求,或同一应用服务器520基于其他批次的数据向缓存服务器530发送加锁请求,缓存服务器530判断已存在未释放的锁(即,针对批次号为001的一批数据所加的锁),在这种情况下,无法继续加锁,只能等待针对批次号为001的一批数据所加的锁释放后,才能执行新的加锁。
70.进一步地,应用服务器520从缓存服务器530接收到第一反馈,获知针对批次号为001的一批数据已成功加锁,则在步骤s505,应用服务器520向发送端口540发送批次号为001的一批待发送数据,以通过发送端口540向外界(例如数据消费者)发送这批数据。通过这种方式,避免了应用服务器对发送端口的密集调用,从而减少或避免在数据发送频率较高的情况下服务器宕机或卡死。
71.当应用服务器520每向发送端口540发送一条数据后,应用服务器520内部的计数单元可以将累加值加1,当发送端口540成功发出一条数据后,其可以向应用服务器520发送第三反馈(步骤s506),告知应用服务器520已成功完成一条数据的发送,根据第三反馈,应用服务器520内部的计数单元可以将累加值相应地减1。相应地,应用服务器520向缓存服务器530发送反馈消息,指示缓存服务器530对初始锁值进行更新(步骤s507)。假设发送端口540已成功发送500条数据,则根据接收到的第三反馈,应用服务器520会对累加值相应地执行500次减1操作,相应地,缓存服务器530对初始锁值也进行了500次减1操作,锁值由初始
值1000变为500。随着数据持续发送成功,锁值持续减少,直到锁值减少到释放阈值(例如0),缓存服务器530将锁释放,并向应用服务器520发送第二反馈,告知其针对批次号为001的一批数据的锁已被释放(步骤s508)。
72.进一步地,当不存在未被释放的锁时,缓存服务器530便能够执行其他加锁请求(例如来自其他应用服务器的加锁请求)。另一方面,应用服务器520获知锁已被释放,则停止向发送端口540发送数据,此时,加锁成功的其他数据便可以通过发送端口540向外界发送,从而避免应用服务器520对发送端口540的频繁调用。
73.在一些情况中,发送端口540可能发生一定程度的暂时性拥堵,此时,应用服务器520可能将累加值加到200(意味着应用服务器520已向发送端口540发送了200条数据),但是发送端口540可能仅向外界成功发送了50条数据,相应地,应用服务器520根据第三反馈将累加值减到150。假设此时已发送至发送端口但未发送成功的待发送数据的数量(150)大于预设阈值(例如,用户自定义的阈值为100),则应用服务器520向缓存服务器530发送反馈消息,告知缓存服务器530更新锁值(步骤s507),锁值例如由1000减少100,变为900。同时,应用服务器520可以暂停向发送端口540发送数据,并开始计时拥堵时长,当拥堵时长达到预设时长时,才再次向发送端口540发送数据。在拥堵时长达到预设时长之前的这段时间内,发送端口540将积压的数据持续向外界发送,使得应用服务器520的计数单元的累加值可以逐渐减小到小于预设阈值100,在这一过程中,只要端口540每成功发送了一条数据,应用服务器520都会将累加值减1,相应地,缓存服务器530也会将锁值减1,以更新锁值。一旦锁值小于或等于释放阈值(例如0),缓存服务器530将锁释放,并向应用服务器520发送第二反馈,告知其针对批次号为001的一批数据的锁已被释放(步骤s508)。如果在发送端口540处发生了持续拥堵,则累加值很快就会再次达到预设阈值100,应用服务器520从而再次向缓存服务器530发送反馈消息(步骤s507),以使缓存服务器530更新锁值,从而加快锁的释放,避免数据持续拥堵导致服务器卡死。
74.在一些情况中,发送端口540可能发生损坏,或系统程序发生错误,导致锁无法被及时释放。由于加锁请求包括加锁的有效时间阈值(例如2秒),则当加锁时间超过2秒时,缓存服务器530也会释放锁,从而避免长时间占用接口导致其他数据无法正常发送。
75.图6示出了根据本公开示例性实施例的数据处理装置600的结构框图。
76.根据本公开的另一方面,还提供一种数据处理装置600,如图6所示,数据处理装置600包括:第一获取单元610,被配置为获取至少一个待发送数据;第二获取单元620,被配置为获取与至少一个待发送数据相对应的锁标识;加锁请求生成单元630,被配置为基于锁标识以及至少一个待发送数据的数量,生成加锁请求;加锁请求发送单元640,被配置为向缓存服务器发送加锁请求;以及数据发送单元650,被配置为响应于从缓存服务器接收到第一反馈,通过发送端口发送至少一个待发送数据,其中,第一反馈指示加锁成功。
77.根据一些实施例,数据处理装置600还可以包括:消息反馈单元(图中未示出),被配置为根据预设规则向缓存服务器发送反馈消息,反馈消息用于指示缓存服务器对初始锁值进行更新,以得到更新后的锁值;并且数据发送单元650可以被进一步配置为响应于从缓存服务器接收到第二反馈,停止向发送端口发送待发送数据,其中,第二反馈是由缓存服务器基于更新后的锁值小于或等于释放阈值而生成的,用于指示锁被释放。
78.根据一些实施例,加锁请求可以包括加锁的有效时间阈值,有效时间阈值用于指
示缓存服务器在加锁时长达到有效时间阈值时释放锁。
79.图7示出了根据本公开示例性实施例的数据处理装置700的结构框图。
80.根据本公开的另一方面,还提供一种数据处理装置700,如图7所示,数据处理装置700包括:判断单元710,被配置为响应于从应用服务器接收到加锁请求,判断是否存在未释放的锁,其中,加锁请求是基于锁标识和至少一个待发送数据的数量而生成的;加锁单元720,被配置为响应于判定不存在未释放的锁,基于锁标识执行加锁;以及加锁反馈单元730,被配置为向应用服务器发送第一反馈,其中,第一反馈指示加锁成功。
81.根据一些实施例,数据处理装置700还可以包括:更新单元(图中未示出),被配置为响应于从应用服务器接收到反馈消息,对初始锁值进行更新,以得到更新后的锁值;释放单元(图中未示出),被配置为响应于更新后的锁值小于或等于释放阈值,基于锁标识,释放锁;以及释放反馈单元(图中未示出),被配置为向应用服务器发送第二反馈,其中,第二反馈指示锁被释放。
82.根据一些实施例,加锁请求可以包括加锁的有效时间阈值,并且,数据处理装置700还可以包括:加锁计时单元(图中未示出),被配置为响应于加锁成功开始计时加锁时长;并且释放单元可以被进一步配置为响应于所加锁时长达到有效时间阈值,释放锁。
83.根据本公开的另一方面,还提供一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的数据处理方法。
84.根据本公开的另一方面,还提供一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行上述的数据处理方法。
85.根据本公开的另一方面,还提供一种计算机程序产品,包括计算机程序,其中,所述计算机程序再被处理器执行时实现上述的数据处理方法。
86.参见图8,现将描述可以作为本公开的电子设备800的结构框图,其是可以应用于本公开的各方面的硬件设备的示例。电子设备可以是不同类型的计算机设备,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
87.图8示出了根据本公开实施例的电子设备的框图。如图8所示,电子设备800可以包括能够通过系统总线803彼此通信的至少一个处理器801、工作存储器802、i/o设备804、显示设备805、存储装置806和通信接口807。
88.处理器801可以是单个处理单元或多个处理单元,所有处理单元可以包括单个或多个计算单元或者多个核心。处理器801可以被实施成一个或更多微处理器、微型计算机、微控制器、数字信号处理器、中央处理单元、状态机、逻辑电路和/或基于操作指令来操纵信号的任何设备。处理器801可以被配置成获取并且执行存储在工作存储器802、存储装置806或者其他计算机可读介质中的计算机可读指令,诸如操作系统802a的程序代码、应用程序802b的程序代码等。
89.工作存储器802和存储装置806是用于存储指令的计算机可读存储介质的示例,指
令由处理器801执行来实施前面所描述的各种功能。工作存储器802可以包括易失性存储器和非易失性存储器二者(例如ram、rom等等)。此外,存储装置806可以包括硬盘驱动器、固态驱动器、可移除介质、包括外部和可移除驱动器、存储器卡、闪存、软盘、光盘(例如cd、dvd)、存储阵列、网络附属存储、存储区域网等等。工作存储器802和存储装置806在本文中都可以被统称为存储器或计算机可读存储介质,并且可以是能够把计算机可读、处理器可执行程序指令存储为计算机程序代码的非暂态介质,计算机程序代码可以由处理器801作为被配置成实施在本文的示例中所描述的操作和功能的特定机器来执行。
90.i/o设备804可以包括输入设备和/或输出设备,输入设备可以是能向电子设备800输入信息的任何类型的设备,可以包括但不限于鼠标、键盘、触摸屏、轨迹板、轨迹球、操作杆、麦克风和/或遥控器。输出设备可以是能呈现信息的任何类型的设备,并且可以包括但不限于包括视频/音频输出终端、振动器和/或打印机。
91.通信接口807允许电子设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据,并且可以包括但不限于调制解调器、网卡、红外通信设备、无线通信收发机和/或芯片组,例如蓝牙tm设备、802.11设备、wifi设备、wimax设备、蜂窝通信设备和/或类似物。
92.工作寄存器802中的应用程序802b可以被加载执行上文所描述的各个方法和处理。在一些实施例中,计算机程序的部分或者全部可以经由存储装置806和/或通信接口807而被载入和/或安装到电子设备800上。当计算机程序被加载并由处理器801执行时,可以执行上文描述的数据处理方法的一个或多个步骤。
93.本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
94.用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
95.在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或
上述内容的任何合适组合。
96.为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示设备(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
97.可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。
98.计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
99.应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行、也可以顺序地或以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
100.虽然已经参照附图描述了本公开的实施例或示例,但应理解,上述的方法、系统和设备仅仅是示例性的实施例或示例,本发明的范围并不由这些实施例或示例限制,而是仅由授权后的权利要求书及其等同范围来限定。实施例或示例中的各种要素可以被省略或者可由其等同要素替代。此外,可以通过不同于本公开中描述的次序来执行各步骤。进一步地,可以以各种方式组合实施例或示例中的各种要素。重要的是随着技术的演进,在此描述的很多要素可以由本公开之后出现的等同要素进行替换。
再多了解一些

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

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

相关文献