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

一种数据标识的处理方法、装置、存储介质以及电子设备与流程

2022-02-22 04:15:47 来源:中国专利 TAG:


1.本公开实施例涉及数据处理的技术领域,特别涉及一种数据标识的处理方法、装置、存储介质以及电子设备。


背景技术:

2.在复杂的分布式系统中,往往需要对大量例如各种消息、记录等数据设置唯一的标识。例如,在支付系统中,随着各类数据的日渐增长,对交易数据在分库分表后需要设置唯一的数据标识以用于标识每条数据,现有采用的数据库的自增标识方式显然不能满足需求,例如在面对两张数据表里的两条数据时,根据数据库的自增标识的方式有可能造成两条数据的数据标识相同。
3.现有一般通过网络方式不断向标识生成服务器请求标识生成服务,这里通过的网络环境并不是绝对可信赖的,即使是内网的网络有可能出现抖动,从而影响后续的业务处理,并且当服务调用方每次需要调用唯一标识时,都需要向标识生成服务器请求标识生成服务,这里的标识生成服务作为一个高频次调用且功能单一的服务,使得标识生成服务器需要响应大量的id分配请求,导致网络请求的耗时较大以及响应速度慢等问题。


技术实现要素:

4.针对现有技术中的情况,为了改善现有技术中存在的由于网络的短时间抖动影响服务调用方的业务处理以及频繁请求导致网络耗时较大的问题,本公开实施例提供一种数据标识的处理方法、装置、存储介质以及电子设备。
5.一方面,本公开提供一种数据标识的处理方法,所述方法包括:从标识生成服务器获取至少一个数据标识号段,并存储所述数据标识号段,每个所述数据标识号段包括多个数据标识;响应于获取数据标识的请求,从存储的所述数据标识号段中依次调用所述数据标识。
6.在一些实施例中,在所述从存储的所述数据标识号段中依次调用所述数据标识之后,还包括:在存储的所述数据标识号段满足第一预定条件的情况下,更新存储的所述数据标识号段。
7.在一些实施例中,所述在存储的所述数据标识号段满足第一预定条件的情况下,更新存储的所述数据标识号段,包括:向所述标识生成服务器发送号段更新请求;接收所述标识生成服务器反馈的更新号段;基于所述更新号段更新已存储的所述数据标识号段。
8.在一些实施例中,所述号段更新请求通过以下方式确定:根据已调用的所述数据标识的流量参数,确定获取更新号段长度;基于所述更新号段长度确定所述号段更新请求。
9.在一些实施例中,所述基于所述更新号段更新已存储的所述数据标识号段,包括:确定所述更新号段中的更新数据标识;将所述更新数据标识加载至已存储的所述数据标识号段中。
10.在一些实施例中,当从标识生成服务器获取多个数据标识号段的情况下,所述存
储所述数据标识号段,包括:获取当前的第一数据标识号段的第一数据标识;在所述第一数据标识号段满足第二预定条件的情况下,获取第二数据标识号段中的第二数据标识,所述第二数据标识号段与所述第一数据标识号段相关联。
11.在一些实施例中,判断所述第一数据标识号段是否满足第二预定条件,包括:获取所述第一数据标识号段中已调用号段的第一长度;当所述第一长度与所述第一数据标识号段的号段长度之间的比例超过预设阈值的情况下,确定所述第一数据标识号段满足第二预定条件。
12.在一些实施例中,所述获取所述第一数据标识号段中已调用号段的第一长度,包括:获取所述第一数据标识号段中的已调用标志位;基于所述已调用标志位的位置,确定所述第一数据标识号段中已调用号段的所述第一长度。
13.在一些实施例中,,所述从存储的所述数据标识号段中依次调用所述数据标识,包括:调用所述第一数据标识号段中未调用号段的第一数据标识;在所述第一数据标识完成调用后切换调用所述第二数据标识号段内的所述第二数据标识。
14.在一些实施例中,所述更新存储的所述数据标识号段,包括:在所述第二数据标识号段满足所述第三预定条件的情况下,向所述标识生成服务器发送号段更新请求;接收所述标识生成服务器反馈的更新号段;
15.基于所述更新号段更新已存储的所述第二数据标识号段。
16.在一些实施例中,所述方法通过服务调用方执行。
17.一方面,本公开提供一种数据标识的处理装置,所述处理包括:获取模块,其用于从标识生成服务器获取至少一个数据标识号段,并存储所述数据标识号段,每个所述数据标识号段包括多个数据标识;调用模块,其用于响应于获取数据标识的请求,从存储的所述数据标识号段中依次调用所述数据标识。
18.另一方面,本公开提供一种存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述技术方案中任一项所述方法的步骤。
19.另一方面,本公开提供一种电子设备,至少包括存储器、处理器,所述存储器上存储有计算机程序,其特征在于,所述处理器在执行所述存储器上的计算机程序时实现上述技术方案中任一项所述方法的步骤。
20.本公开实施例通过在本地存储多个号段以便于数据标识的连续缓存和更新,提升标识生成服务的稳定性,避免由于网络的短时间抖动影响服务调用方的业务处理,同时降低请求标识生成服务的请求次数,显著提升标识生成服务的性能。
附图说明
21.为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
22.图1为本公开实施例的现有数据标识的处理系统的架构示意图;
23.图2为本公开实施例的数据标识的处理系统的架构示意图;
24.图3为本公开实施例的数据标识的处理步骤示意图;
25.图4为本公开实施例的数据标识的处理状态示意图;
26.图5为本公开实施例的数据标识的处理步骤示意图;
27.图6为本公开实施例的数据标识的处理步骤示意图;
28.图7为本公开实施例的数据标识的处理步骤示意图;
29.图8为本公开实施例的数据标识的处理步骤示意图;
30.图9为本公开实施例的数据标识的处理步骤示意图;
31.图10为本公开实施例的数据标识的处理步骤示意图;
32.图11为本公开实施例的数据标识的处理步骤示意图;
33.图12为本公开实施例的数据标识的处理步骤示意图;
34.图13为本公开实施例的数据标识的处理流程示意图。
具体实施方式
35.此处参考附图描述本公开的各种方案以及特征。
36.应理解的是,可以对此处申请的实施例做出各种修改。因此,上述说明书不应该视为限制,而仅是作为实施例的范例。本领域的技术人员将想到在本公开的范围和精神内的其他修改。
37.包含在说明书中并构成说明书的一部分的附图示出了本公开的实施例,并且与上面给出的对本公开的大致描述以及下面给出的对实施例的详细描述一起用于解释本公开的原理。
38.通过下面参照附图对给定为非限制性实例的实施例的优选形式的描述,本公开的这些和其它特性将会变得显而易见。
39.还应当理解,尽管已经参照一些具体实例对本公开进行了描述,但本领域技术人员能够确定地实现本公开的很多其它等效形式,它们具有如权利要求所述的特征并因此都位于借此所限定的保护范围内。
40.当结合附图时,鉴于以下详细说明,本公开的上述和其他方面、特征和优势将变得更为显而易见。
41.此后参照附图描述本公开的具体实施例;然而,应当理解,所申请的实施例仅仅是本公开的实例,其可采用多种方式实施。熟知和/或重复的功能和结构并未详细描述以避免不必要或多余的细节使得本公开模糊不清。因此,本文所申请的具体的结构性和功能性细节并非意在限定,而是仅仅作为权利要求的基础和代表性基础用于教导本领域技术人员以实质上任意合适的详细结构多样地使用本公开。
42.本说明书可使用词组“在一种实施例中”、“在另一个实施例中”、“在又一实施例中”或“在其他实施例中”,其均可指代根据本公开的相同或不同实施例中的一个或多个。
43.在现有数据库的存储领域通常采用标识递增生成的方式以生成数据标识,图1是一种常见的依托数据库的用于数据标识的递增标识生成系统的系统架构,这里的所述数据标识的递增是指例如所述数据标识从1逐步递增至1000或者更多,在数据库中的数据库表的主要字段说明如下表所示:
[0044][0045]
如图1所示,多个不同的服务调用方10通过网络方式请求获取唯一并且逐步递增的数据标识,这里的所述网络方式通常是指内部网络,而非公网环境,即使内部网络也经常出现抖动等情况;其中的数据库30用于分配用于数据标识的号段,例如可以用于分配数据标识为1-3000的号段,所述数据库30与所述服务调用方10之间设置多个标识生成服务器20,所述标识生成服务器20用于生成以供调用的数据标识并存储在其请求获取的号段中,例如第一标识生成服务器21、第二标识生成服务器22以及第三标识生成服务器23可以通过请求依次获取的号段是数据标识为1-1000、1001-2000以及2001-3000的号段,所述服务调用方10按照号段中数据标识的递增顺序依次调用不同号段中的数据标识,其中,以所述第一标识生成服务器21为例,所述第一标识生成服务服务器21被分配到的号段是1-1000,当所述第一标识生成服务服务器21中的数据标识都被调用完毕后,所述服务调用方10将向另一个标识生产服务器即所述第二标识生成服务服务器22或者所述第三标识生成服务服务器23请求调用后续的数据标识,假设另外其他的标识生成服务器中的号段没有及时更新数据标识,则所述服务调用方10需要向所有的标识生成服务器再次请求重新生成数据标识。
[0046]
在上述描述的系统架构中,所述服务调用方10需要通过网络方式向所述标识生成服务器20不断请求标识生成服务,这里通过的网络环境并不是绝对可信赖的,即使是内网的网络有可能出现抖动,从而影响所述服务调用方10后续的业务处理,并且所述服务调用方10每次需要调用唯一标识时,都需要向所述标识生成服务端20请求标识生成服务,这里的标识生成服务作为一个高频次调用且功能单一的服务,网络请求的耗时不可忽视。
[0047]
本公开的第一实施例提供一种数据标识的处理方法,以采用相应的系统架构实现,如图2所示的系统架构中,与图1示出的相关技术的系统架构相比,在所述服务调用方10和所述标识生成服务器20之间设置标识生成客户端40,具体地,这里的所述标识生成客户端40可以内嵌集成在每个所述服务调用方10中,不同的所述标识生成客户端40对应于不同的所述服务调用方10,其中,在所述标识生成客户端40中可以预先设置一个或者多个数据标识号段,例如设置2个数据标识号段,每个数据标识号段中预先缓存递增的数据标识,所述服务调用方10可以随时向对应的所述标识生成客户端40请求调用缓存在所述数据标识号段中的所述数据标识。进一步地,由于所述标识生成客户端40可以内嵌集成在每个所述服务调用方10中,所述服务调用方10可以向对应的所述标识生成客户端40提出调用缓存的所述数据标识的请求,这种请求属于本地请求而不会占用网络资源,可以避免网络抖动带来的影响。
[0048]
此外,所述标识生成客户端40在必要的时候,例如在需要在当所述数据标识没有以递增方式缓存并且需要更新所述数据标识时可以向所述标识生成服务器20提出请求获取一段数据标识以实现对数据标识号段的更新,获取的更新的数据标识将被缓存在所述服
务调用方10本地,这样可以极大地降低网络请求的次数,所述服务调用方10从而可以直接向所述标识生成客户端40继续请求获取连续的数据标识,从而避免大部分通过网络获取数据标识的请求受到网络抖动的影响。
[0049]
在本公开的实施例中,一方面为了通过所述标识生成客户端40能够缓存一定数量的递增的所述数据标识以被所述服务调用方10随时调用,一方面为了缓存足够数量的所述数据标识以避免通过网络方式向所述标识生成服务端20提出过多的针对所述数据标识生成的请求,为此,可以在每个所述标识生成客户端40的内部对于每一个业务代码(biz_code)设置一个或者多个数据标识号段,例如设置两个数据标识号段(例如是第一数据标识号段以及第二数据标识号段)以用于缓存对应的递增的数据标识。
[0050]
为了保证缓存的所述数据标识是连续并且递增的以便于调用,例如可以按照预定时间间隔扫描每个已存储的数据标识号段中的调用情况,例如默认从所述第一数据标识号段的已调用标志位(cur_val)处获取所述第一数据标识号段中的第一数据标识;在当前的所述第一数据标识号段中已调用的数据标识已经达到一定比例时,如果下一个号段(即第二数据标识号段)不符合调用要求,例如尚未更新完毕或者未启动更新,则需要启动一个业务线程以外的更新线程去请求并获取更新号段以及获取更新号段中的数据标识,以便于在当前的所述第一数据标识号段中的第一数据标识全部调用完毕后,确保下一个数据标识号段(即第二数据标识号段)准备完毕或者更新完毕,并且可以切换到下一个数据标识号段继续调用其中的数据标识,而原来的所述第一数据标识号段继续执行数据标识的准备以及更新任务,以此循环往复,上述数据处理的具体方式将在以下进行更加详细的描述:
[0051]
本公开实施例提供的一种数据标识的处理方法,如图3所示,具体包括以下步骤:
[0052]
s101,从标识生成服务器获取至少一个数据标识号段,并存储所述数据标识号段,每个所述数据标识号段包括多个数据标识。
[0053]
在本步骤中,从标识生成服务器获取至少一个数据标识号段,并存储所述数据标识号段,每个所述数据标识号段包括多个数据标识。具体地,作为所述服务调用方10针对当前业务对应的业务代码(biz_code)可以从所述标识生成服务器20中获取一个或者多个数据标识号段,并在位于所述服务调用方10本地的所述标识生成客户端40中存储获取的所述数据标识号段,这里的每个所述数据标识号段里包括已经预先缓存的多个数据标识,其中,例如,当前业务对于数据标识的数量需求不大时可以获取并存储一个数据标识号段,例如该数据标识号段中缓存从1到1000的数据标识,如果当前业务对于数据标识的数量需求较大时,为了避免频繁地向所述标识生成服务器20发出请求,可以一次性获取多个数据标识号段,如图4所示,例如一次性地获取第一数据标识号段和第二数据标识号段,其中,第一数据标识号段中预先缓存1-1000的数据标识,第二数据标识号段中预先缓存1001-1500的数据标识,这里的两个数据标识号段存储的数据标识的数量可以相同,也可以不同。
[0054]
s102,响应于获取数据标识的请求,从存储的所述数据标识号段中依次调用所述数据标识。
[0055]
在基于上述步骤s101从标识生成服务器获取至少一个数据标识号段,并存储所述数据标识号段之后,在本步骤中,响应于获取数据标识的请求,从存储的所述数据标识号段中依次调用所述数据标识。具体地,由于获取的所述数据标识号段已经被存储在本地,当所述服务调用方10基于业务代码需要调用数据标识时,可以向位于本地的所述标识生成客户
端40发送获取数据标识的请求,并从存储的一个或者多个所述数据标识号段中依次调用所述数据标识,其中,例如当存储有多个所述数据标识号段的情况下,可以按顺序依次调用所述数据标识号段,在调用当前的所述数据标识号段中按顺序依次调用其中的所述数据标识,这里的调用顺序例如可以基于所述数据标识的大小确定,例如依次调用1-1000数据标识号段中的数据标识,然后继续调用1001-2000数据标识号段中的数据标识。
[0056]
在所述从存储的所述数据标识号段中依次调用所述数据标识之后,还包括:
[0057]
s103,在存储的所述数据标识号段满足第一预定条件的情况下,更新存储的所述数据标识号段。
[0058]
当根据业务的需求依次调用存储在本地所述标识生成客户端40中的所述数据标识之后,所述数据标识由于基于任务的进行不断被调用,可供调用的所述数据标识将逐渐变少,为此,在存储的所述数据标识号段满足第一预定条件的情况下,需要更新存储的所述数据标识号段,即在本地存储的所述数据标识号段中的可调用的所述数据标识数量不足时,需要更新所述数据标识号段以及其中的所述数据标识。
[0059]
进一步地,所述在存储的所述数据标识号段满足第一预定条件的情况下,更新存储的所述数据标识号段,如图5所示,包括:
[0060]
s201,向所述标识生成服务器发送号段更新请求。
[0061]
当需要更新所述数据标识号段以及其中的所述数据标识的情况下,在本步骤中,向所述标识生成服务器发送号段更新请求。具体地,当存储的所述数据标识号段中的所述数据标识不能满足调用需求的情况下,可以向所述标识生成服务器20例如通过网络方式发送号段更新请求,以更新存储在本地的所述数据标识号段中的所述数据标识。这里的所述第一预定条件例如可以是所述数据标识号段中的所述数据标识不是递增设置并且不能实现连续调用,这可以通过扫描的方式实现。例如当第一数据标识号段中的数据标识1-1000已快被调用完毕时,通过扫描方式发现第二数据标识号段中的数据标识并不是1001-2000,则需要更新第二数据标识号段中的数据标识,为此,需要通过网络向所述标识生成服务器20发送号段更新请求。
[0062]
s202,接收所述标识生成服务器反馈的更新号段。
[0063]
在通过上述步骤s201向所述标识生成服务器发送号段更新请求之后,在本步骤中,接收所述标识生成服务器反馈的更新号段。具体地,所述标识生成服务器20在接收到所述号段更新请求后,基于所述号段更新请求向所述标识生成客户端40发送对应于所述号段更新请求的更新号段。例如上例所述,当需要1001-1500的数据标识时,所述标识生成服务器20将包括1001-1500的数据标识的更新号段发送给所述标识生成服务端40以实现数据标识号段以及数据标识的更新。
[0064]
s203,基于所述更新号段更新已存储的所述数据标识号段。
[0065]
在通过上述步骤s202接收所述标识生成服务器反馈的更新号段之后,在本步骤中,基于所述更新号段更新已存储的所述数据标识号段。具体地,所述标识生成客户端40接收到更新的数据标识号段以及其中的数据标识后,将替换先前在所述数据标识号段中不能被调用的数据标识以实现已存储的所述数据标识号段中的数据标识的连续,以供所述服务调用方10能够顺利调用。
[0066]
其中,如图6所示,上述的所述号段更新请求可以通过以下方式确定:
[0067]
s301,根据已调用的所述数据标识的流量参数,确定获取更新号段长度。
[0068]
在本步骤中,根据当前已调用的所述数据标识的流量参数,确定获取更新号段长度。具体地,这里的所述流量参数例如可以是每秒查询次数,也可以是其他表示当前调用数据标识频率的参数,这里当前调用所述数据标识的流量参数表示当前对于数据标识的需求程度;据此,在需要针对所述数据标识号段进行更新的过程中确定获取所述数据标识对应的更新号段长度,这里的所述更新号段长度与需要获取的所述数据标识的数量相关,一般情况下应当小于所述数据标识号段的所述号段长度。
[0069]
s302,基于所述更新号段长度确定所述号段更新请求。
[0070]
在通过上述步骤s301确定获取更新号段长度之后,在本步骤中,基于所述更新号段长度确定所述号段更新请求,从而向所述标识生成服务端40发送获取更新号段的号段更新请求。具体地,在确定需要的所述更新号段长度后,可以基于所述更新号段长度向所述标识生成服务端40发送号段更新请求以请求提供更新号段,以便于实现对已存储的所述数据标识号段的更新操作。
[0071]
进一步地,所述基于所述更新号段更新已存储的所述数据标识号段,如图7所示,包括:
[0072]
s401,确定所述更新号段中的更新数据标识。
[0073]
在基于更新号段对已存储的所述数据标识号段进行更新的过程中,在本步骤中,首先需要确定所述更新号段中的更新数据标识。所述更新数据标识用于使得已存储的所述数据标识号段中的所述数据标识实现递增并且连续可调用。
[0074]
s402,将所述更新数据标识加载至已存储的所述数据标识号段中。
[0075]
在通过上述步骤s401确定所述更新号段中的更新数据标识之后,在本步骤中,将所述更新数据标识加载至已存储的所述数据标识号段中。具体地,根据所述更新号段请求,在接收到所述更新数据标识之后,将所述更新数据标识缓存至需要更新的所述数据标识号段中,并对原先的不能实现调用的数据标识进行替换,从而实现对所述数据标识号段的更新。
[0076]
下面在一个具体的实施方式中,进一步地说明本公开实施例涉及的数据标识的处理方法,其中,以当从标识生成服务器获取两个数据标识号段的情况下获取并存储所述数据标识号段为例,如图8所示,所述处理方法包括:
[0077]
s501,获取当前的第一数据标识号段的第一数据标识。
[0078]
在本实施方式中,可以在每个所述标识生成客户端40的内部对于每一个业务代码(biz_code)设置两个数据标识号段,例如设置第一数据标识号段以及第二数据标识号段,以用于缓存对应的递增的数据标识,当然这里的数据标识号段的数量可以不限定为两个。这里的所述第一数据标识号段例如是1-1000,所述第二数据标识号段例如是1001-2000,在所述第一数据标识号段中预先缓存第一数据标识,在所述第二数据标识号段中预先缓存第二数据标识,其中,缓存的数据标识的数量与对应的号段长度相匹配。在本步骤中,首先获取当前的第一数据标识号段的第一数据标识。例如,首先获取第一数据标识号段,在所述第一数据标识号段中缓存1-1000的第一数据标识。
[0079]
s502,在所述第一数据标识号段满足第二预定条件的情况下,获取第二数据标识号段中的第二数据标识,所述第二数据标识号段与所述第一数据标识号段相关联。
[0080]
在通过上述步骤s501获取当前的第一数据标识号段的第一数据标识之后,在本步骤中,在所述第一数据标识号段满足第二预定条件的情况下,获取第二数据标识号段中的第二数据标识,所述第二数据标识号段与所述第一数据标识号段相关联。具体地,这里的所述第二预定条件用于判断是否需要获取所述第二数据标识号段中的第二数据标识,当满足第二预定条件也就是表示可能会调用所述第二数据标识号段中的第二数据标识,从而确定所述第二数据标识号段做好调用准备。
[0081]
其中,判断所述第一数据标识号段是否满足第二预定条件,如图9所示,包括:
[0082]
s601,获取所述第一数据标识号段中已调用号段的第一长度。
[0083]
在本步骤中,响应于调用数据标识的请求,获取所述第一数据标识号段中已调用号段的第一长度。具体地,在实际的业务进程中,与业务相关的服务调用方10根据需要调用数据标识以加载所述数据标识对应的相关数据,这样,所述服务调用方10通过本地调用的方式可以向对应的所述标识生成客户端40请求调用所述标识生产客户端40中预先缓存的数据标识;对于所述标识生成客户端40而言,响应于调用数据标识的请求,所述请求对应于相应的业务代码,具体地,首先获取所述第一数据标识号段中已被所述服务调用方10调用的号段的第一长度,这里的所述第一长度用于表示所述第一数据标识号段中已经被调用的第一数据标识的数量。
[0084]
s602,当所述第一长度与所述第一数据标识号段的号段长度之间的比例超过预设阈值的情况下,确定所述第一数据标识号段满足第一预定条件。
[0085]
在通过上述步骤s601获取所述第一数据标识号段中已调用号段的第一长度之后,在本步骤中,当所述第一长度与所述第一数据标识号段的号段长度之间的比例超过预设阈值的情况下,确定所述第一数据标识号段满足第一预定条件。
[0086]
具体地,这里的所述第一长度用于表示所述第一数据标识号段中已经被调用的所述第一数据标识的数量,这里的所述第一数据标识号段的号段长度表示所述第一数据标识号段中缓存的全部所述第一数据标识的数量,这里的所述号段长度基于不同的数据标识号段而不同。
[0087]
进一步地,所述第一长度与所述号段长度之间的比例表示所述第一数据标识号段中已被调用的所述第一数据标识的数量与所述第一数据标识号段中缓存的全部所述第一数据标识的数量之间的比例,这个所述比例能够表示所述第一数据标识号段中所述第一数据标识的调用情况,其中,当这个所述比例超过预设阈值的情况下,需要提前获取或者确定所述第二数据标识号段中的第二数据标识的信息,例如所述第二数据标识是否完成预先缓存完毕等,便于从所述第一数据标识号段调用完毕并切换调用第二数据标识号段的进程中能够持续进行而不会因为缺乏足够的数据标识而导致进程暂停。进一步地,这里的所述比例可以是20%,当然也可以根据需求设置其他的比例。
[0088]
进一步地,所述获取所述第一数据标识号段中已调用号段的第一长度,如图10所示,包括:
[0089]
s701,获取所述第一数据标识号段中的已调用标志位。
[0090]
在本步骤中,为了获取所述第一数据标识号段中已调用号段的第一长度,可以通过获取所述第一数据标识号段中的已调用标志位(cur_val)的位置的方式实现,所述已调用标志位在所述第一数据标识号段中的位置能够用于表示所述第一数据标识号段中的具
体调用情况,例如通过间隔扫描的方式实时获取所述已调用标志位的位置。
[0091]
由于对于数据标识的调用是根据递增顺序,如图4所示,例如在所述第一数据标识号段的起始位置设为pos位置,所述已调用标志位(cur_val)表示当前调用的所述第一数据标识的位置,其在所述第一数据标识号段中的位置能够用于表示所述第一数据标识号段中的具体调用情况,例如通过间隔扫描的方式实时获取所述已调用标志位的位置。
[0092]
s702,基于所述已调用标志位的位置,确定所述第一数据标识号段中已调用号段的所述第一长度。
[0093]
在通过上述步骤s701获取所述第一数据标识号段中的已调用标志位之后,在本步骤中,基于所述已调用标志位的在所述第一数据标识号段中的位置,确定所述第一数据标识号段中已调用号段的所述第一长度,从而确定所述第一数据标识号段中已被调用的所述第一数据标识的真实数量。
[0094]
进一步地,以当从标识生成服务器获取两个数据标识号段的情况下获取并存储所述数据标识号段为例,所述从存储的所述数据标识号段中依次调用所述数据标识,如图11所示,包括:
[0095]
s801,调用所述第一数据标识号段中未调用号段的第一数据标识。
[0096]
在本步骤中,按照顺序首先调用所述第一数据标识号段中未调用号段的第一数据标识。具体地,当基于任务开始调用所述数据标识时,首先基于所述已调用标示位调用所述第一数据标识号段中未调用号段的第一数据标识。
[0097]
s802,在所述第一数据标识完成调用后切换调用所述第二数据标识号段内的第二数据标识。
[0098]
本步骤中,在所述第一数据标识完成调用后,从所述第二数据标识号段的起始位置开始依次按照递增顺序依次调用所述第二数据标识号段的所述第二数字标识,也就是将所述第二数据标识号段作为第一数据标识号段开始执行调用过程。例如当所述第一数据标识号段的1-1000中的第一数据标识都被调用完毕后,从所述第二数据标识号段的1001开始调用其中缓存的第二数据标识。
[0099]
此外,为了避免在获取所述第二数据标识号段中的第二数据标识不满足递增并且能够连续调用的需求,在本实施方式中,所述更新存储的所述数据标识号段,如图12所示,包括:
[0100]
s901,在所述第二数据标识号段满足所述第三预定条件的情况下,向所述标识生成服务器发送号段更新请求。
[0101]
在本步骤中,在获取所述第二数据标识号段中的所述第二数据标识后,需要针对所述第二数据标识的状态进行判断,如果第二数据标识不满足数据标识递增并且能够连续调用的要求,则将需要启动更新线程以实现数据标识号段的更新,也就是,在所述第二数据标识号段满足所述第三预定条件的情况下,向所述标识生成服务器发送号段更新请求。
[0102]
这里的所述第三预定条件用于判断所述第二数据标识号段是否更新完毕,也就是其中的所述第二数据标识是否符合递增的要求并且完成预先缓存,如果所述第二数据标识号段未能更新完毕也就是满足第三预定条件,例如所述第二数据标识号段中的所述第二数据标识没有全部预先缓存完毕或者不符合数据标识递增的要求,也就是不能处于可以随时被调用的状态,则认为所述第二数据标识号段满足第三预定条件。
[0103]
在这种情况下,需要在当前的业务进程之外,启动用于更新号段的更新进程以向所述标识生成服务端40发送号段更新请求,以请求对所述第二数据标识号段进行更新,也就是向所述标识生成服务端20请求获取新的号段,这里的向所述标识生成服务端40发送更新请求通过网络方式发送。
[0104]
此外,在另一个实施方式中,还可以进一步判断所述第二数据标识号段是否已经启动更新,也就是通过所述第二数据标识号段的更新状态以判断是否发送需要发送号段更新请求,这就需要获取并且判断所述第二数据标识号段的更新状态,并基于所述更新状态判断是否继续调用所述第二数据标识号段内的所述第二数据标识还是启动更新进程。这里的所述更新状态包括已启动更新、未启动更新等多种状态,基于不同的状态确定继续的针对数据标识的操作。
[0105]
如果在所述第二数据标识号段已启动更新所述第二数据标识的情况下,继续调用所述第一数据标识号段内的所述第一数据标识。具体地,如果所述第二数据标识号段已启动更新所述第二数据标识,则表示所述第二数据标识号段中在更新结束后将有足够的所述第二数据标识以供后期的调用,为此,将当前的已调用标识位对应的第一数据标识返回,并将所述已调用标识位的位置移动,继续调用所述第一数据标识号段内的所述第一数据标识,并且在所述第一数据标识号段内的第一数据标识完成调用后切换调用所述第二数据标识号段内的第二数据标识,也就是将继续调用所述第一数据标识号段内的所述第一数据标识,直到所有的所述第一数据标识完成调用后,在所述第二数据标识号段更新完毕后切换调用所述第二数据标识号段内的第二数据标识,然后所述第一数据标识号段可以继续执行数据标识的下一次缓存。
[0106]
如果在所述第二数据标识号段未启动更新所述第二数据标识的情况下,则向标识生成服务端发送更新请求。在另一种情况下,即在所述第二数据标识号段未启动更新所述第二数据标识的情况下,向所述标识生成服务端40发送更新请求。具体地,如果所述第二数据标识号段不但未能完成所述第二数据标识的预先缓存,并且还未能启动更新所述第二数据标识,这就意味着在所述第一数据标识号段内的所有所述第一数据标识被调用完毕后,将没有本地缓存的数据标识以供继续调用,这将严重影响数据标识的持续调用,造成系统运行的效率低下。
[0107]
需要说明的是,在本步骤中可以在所述第二数据标识号段未启动更新所述第二数据标识的情况下,利用所述更新号段线程通过网络方式请求调用标识生成服务,也就是向在所述服务调用方10和所述标识生成服务器30之间传输数据,而在上述其他的业务线程里都不会去调用标识生成服务,对数据标识的调用都是在本地提出请求和进行数据传输,这种线程的耗时可忽略不计,从而很明显的提升获取数据标识的响应时间。
[0108]
s902,接收所述标识生成服务器反馈的更新号段。
[0109]
在通过上述步骤s901向所述标识生成服务器发送号段更新请求之后,在本步骤中,接收所述标识生成服务器反馈的更新号段。具体地,所述标识生成服务器20在接收到所述号段更新请求后,基于所述号段更新请求向所述标识生成客户端40发送对应于所述第二数据标识号段更新请求的更新号段。例如上例所述,当需要1001-1500的数据标识时,所述标识生成服务器20将包括1001-1500的数据标识的更新号段发送给所述标识生成服务端40以实现所述第二数据标识号段以及第二数据标识的更新。
[0110]
s903,基于所述更新号段更新已存储的所述第二数据标识号段。
[0111]
在通过上述步骤s902接收所述标识生成服务器反馈的更新号段之后,在本步骤中,基于所述更新号段更新已存储的所述第二数据标识号段。具体地,所述标识生成客户端40接收到更新的数据标识号段以及其中的数据标识后,将替换先前在所述第二数据标识号段中不能被调用的数据标识以实现已存储的所述第二数据标识号段中的数据标识的连续,以供所述服务调用方10能够顺利调用。这样,所述服务调用方10在按照顺序依次调用所述第一数据标识号段的所述第一数据标识之后,可以切换调用所述第二数据标识号段中的第二数据标识,然后所述第一数据标识号段可以继续执行数据标识的下一次缓存
[0112]
下面通过一个具体实施方式简要描述本实施例涉及的数据标识的处理方法,如图13所示,响应于所述数据标识的请求,通过所述已调用标志位(cur-val)的方式获取所述第一数据标识号段中已调用号段的第一长度,当所述已调用标志位表示的第一长度与所述第一数据标识号段的号段长度之间的比例超过20%的情况下,判断所述第二数据标识号段是否更新完毕,在所述第二数据标识号段未更新完毕的情况下获取所述第二数据标识号段的更新状态;如果所述第二数据标识号段已启动号段更新,则将当前的已调用标志位以及对应的数据标识返回,所述已调用标志位不断加1递增,直到当所述已调用标志位的位置超过所述第一数据标识号段中的最大位置的情况下,将所述已调用标志位设置在所述第二数据标识号段的起始位置,并开始调用所述第二数据标识号段的数据标识;如果所述第二数据标识号段未启动号段更新,则建立新的更新号段进程,并根据例如当前调用所述第一数据标识的例如每秒查询次数等流量参数,确定获取所述第二数据标识对应的更新号段长度,并据此发送获取更新号段请求;在接收到所述更新号段中的更新数据标识后,将所述更新数据标识加载至所述第二数据标识号段中,以实现持续的数据标识调用。
[0113]
本公开实施例通过在本地存储数据标识号段以便于数据标识的连续缓存和更新,提升标识生成服务的稳定性,避免由于网络的短时间抖动影响服务调用方的业务处理,同时降低请求标识生成服务的请求次数,显著提升标识生成服务的性能。
[0114]
本公开的第二实施例提供一种数据标识的处理装置,其用于实现上述第一实施例中的方法,所述装置位于所述服务调用方的服务器中,具体地,这里的所述处理装置包括相互耦合的获取模块以及调用模块,其中:
[0115]
获取模块用于从标识生成服务器获取至少一个数据标识号段,并存储所述数据标识号段,每个所述数据标识号段包括多个数据标识;
[0116]
调用模块用于响应于获取数据标识的请求,从存储的所述数据标识号段中依次调用所述数据标识。
[0117]
进一步地,所述处理装置还包括:更新模块,所述更新模块用于在存储的所述数据标识号段满足第一预定条件的情况下,更新存储的所述数据标识号段。
[0118]
所述更新模块包括发送单元、接收单元以及更新单元,其中:发送单元用于向所述标识生成服务器发送号段更新请求;接收单元用于接收所述标识生成服务器反馈的更新号段;更新单元用于基于所述更新号段更新已存储的所述数据标识号段
[0119]
所述更新单元包括确定子单元和加载子单元,其中,所述确定子单元用于确定所述更新号段中的更新数据标识;所述加载子单元用于将所述更新数据标识加载至已存储的所述数据标识号段中。
[0120]
当从标识生成服务器获取多个数据标识号段的情况下,所述获取模块包括第一获取单元以及第二获取单元,其中:
[0121]
第一获取单元用于获取当前的第一数据标识号段的第一数据标识;
[0122]
第二获取单元用于在所述第一数据标识号段满足第二预定条件的情况下,获取第二数据标识号段中的第二数据标识,所述第二数据标识号段与所述第一数据标识号段相关联。
[0123]
所述第二获取单元还用于判断所述第一数据标识号段是否满足第二预定条件,具体用于获取所述第一数据标识号段中已调用号段的第一长度;当所述第一长度与所述第一数据标识号段的号段长度之间的比例超过预设阈值的情况下,确定所述第一数据标识号段满足第一预定条件。
[0124]
其中,所述获取所述第一数据标识号段中已调用号段的第一长度,包括:获取所述第一数据标识号段中的已调用标志位;基于所述已调用标志位的位置,确定所述第一数据标识号段中已调用号段的所述第一长度。
[0125]
所述调用模块具体用于调用所述第一数据标识号段中未调用号段的第一数据标识;在所述第一数据标识完成调用后切换调用所述第二数据标识号段内的第二数据标识。
[0126]
第二获取单元还用于:在所述第二数据标识号段满足所述第三预定条件的情况下,向所述标识生成服务器发送号段更新请求;接收所述标识生成服务器反馈的更新号段;基于所述更新号段更新已存储的所述第二数据标识号段。
[0127]
本公开实施例通过在本地存储数据标识号段以便于数据标识的连续缓存和更新,提升标识生成服务的稳定性,避免由于网络的短时间抖动影响服务调用方的业务处理,同时降低请求标识生成服务的请求次数,显著提升标识生成服务的性能。
[0128]
本公开的第三实施例提供了一种存储介质,该存储介质为计算机可读介质,可以是调用任务的服务端或者系统服务端的存储介质,存储有计算机程序,该计算机程序被处理器执行时可以实现本公开第一实施例或者第三实施例中提供的任意方法,示例性的,包括如下步骤s11至s12:
[0129]
s11,从标识生成服务器获取至少一个数据标识号段,并存储所述数据标识号段,每个所述数据标识号段包括多个数据标识;
[0130]
s12,响应于获取数据标识的请求,从存储的所述数据标识号段中依次调用所述数据标识。
[0131]
进一步地,该计算机程序被处理器执行时实现本公开第一实施例提供的其他方法。
[0132]
本公开实施例通过在本地设置数据标识号段以便于数据标识的连续缓存和更新,提升标识生成服务的稳定性,避免由于网络的短时间抖动影响服务调用方的业务处理,同时降低请求标识生成服务的请求次数,显著提升标识生成服务的性能。
[0133]
本公开的第四实施例提供了一种电子设备,该电子设备至少包括存储器和处理器,所述电子设备可以是调用任务的服务端或者系统服务端上的电子设备,存储器上存储有计算机程序,处理器在执行存储器上的计算机程序时实现本公开第一实施例或者第三实施例中提供的任意方法。示例性的,电子设备计算机程序步骤如下s21至s22:
[0134]
s21,从标识生成服务器获取至少一个数据标识号段,并存储所述数据标识号段,
每个所述数据标识号段包括多个数据标识;
[0135]
s22,响应于获取数据标识的请求,从存储的所述数据标识号段中依次调用所述数据标识。
[0136]
进一步地,处理器还执行上述第一实施例中的方法对应的其他计算机程序。
[0137]
本公开实施例通过在本地存储数据标识号段以便于数据标识的连续缓存和更新,提升标识生成服务的稳定性,避免由于网络的短时间抖动影响服务调用方的业务处理,同时降低请求标识生成服务的请求次数,显著提升标识生成服务的性能。
[0138]
上述存储介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
[0139]
上述存储介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:获取至少两个网际协议地址;向节点评价设备发送包括至少两个网际协议地址的节点评价请求,其中,节点评价设备从至少两个网际协议地址中,选取网际协议地址并返回;接收节点评价设备返回的网际协议地址;其中,所获取的网际协议地址指示内容分发网络中的边缘节点。
[0140]
或者,上述存储介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:接收包括至少两个网际协议地址的节点评价请求;从至少两个网际协议地址中,选取网际协议地址;返回选取出的网际协议地址;其中,接收到的网际协议地址指示内容分发网络中的边缘节点。
[0141]
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如java、smalltalk、c ,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在乘客计算机上执行、部分地在乘客计算机上执行、作为一个独立的软件包执行、部分在乘客计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到乘客计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0142]
需要说明的是,本公开上述的存储介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何存储介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。存储介质上包含的程序代码可以用
任何适当的介质传输,包括但不限于:电线、光缆、rf(射频)等等,或者上述的任意合适的组合。
[0143]
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0144]
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定。
[0145]
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、片上系统(soc)、复杂可编程逻辑设备(cpld)等等。
[0146]
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0147]
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
[0148]
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
[0149]
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
[0150]
以上对本公开多个实施例进行了详细说明,但本公开不限于这些具体的实施例,本领域技术人员在本公开构思的基础上,能够做出多种变型和修改实施例,这些变型和修改都应落入本公开所要求保护的范围。
再多了解一些

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

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

相关文献