一种数据状态更新方法、装置、设备及介质与流程

文档序号:17358132发布日期:2019-04-09 21:51阅读:203来源:国知局
一种数据状态更新方法、装置、设备及介质与流程

本申请涉及计算机技术领域,尤其涉及一种数据状态更新方法、装置、设备及介质。



背景技术:

现有技术中,每个数据往往要经历一个或多个处理阶段才能最终处理完毕。每个数据往往会对应一定数量的业务明细,每条业务明细在每个处理阶段对应一定的业务逻辑,因此在每个处理阶段需要对各个数据的各条业务明细的业务逻辑进行处理(即对业务明细进行处理)。一般来说,在各个处理阶段,需要对各个数据进行扫描,检测批次对应的业务明细的业务逻辑是否完成,若某数据的全部业务明细的业务逻辑都已完成,则更新该数据的状态,该数据可以进入下一处理阶段。目前常用的方案是将数据按照创建时间进行排序,定时捞取前指定个数据进行扫描和状态更新。但是极易出现的一种情况是这前指定个数据中有的数据的业务明细卡住或者处理失败,则这些有业务明细卡住或者处理失败的数据(不妨简称“处理失败数据”)状态更新不成功并被放回,且每次捞取时都会将这些处理失败业务捞取出来并放回,从而占用捞取或者更新资源,使得其他排序靠后的业务明细已处理完毕的数据迟迟无法被捞取到。极端情况下,若这前指定个数据均出现业务明细卡住或者处理失败的情况,则每次捞取时都会捞取这前指定个数据,使得其他排序靠后的业务明细已处理完毕的数据无法被捞取到,也就不会有数据进入下一处理阶段,造成整个处理过程停滞。

有鉴于此,需要更有效和更高效的数据状态更新方案。



技术实现要素:

本说明书实施例提供了一种数据状态更新方法、装置、设备及介质,用以解决如何更有效和更高效地进行数据状态更新的技术问题。

为解决上述技术问题,本说明书实施例是这样实现的:

本说明书实施例提供一种数据状态更新方法,包括:

确定数据的状态更新序列;

根据所述状态更新序列定时更新所述数据的状态;

对于任一所述数据,若该数据状态更新不成功达到指定次,则将该数据移出所述状态更新序列。

本说明书实施例还提供了一种数据状态更新装置,包括:

排队模块,用于确定数据的状态更新序列;

状态更新模块,用于根据所述状态更新序列定时更新所述数据的状态;

出队模块,用于对于任一所述数据,若该数据状态更新不成功达到指定次,则将该数据移出所述状态更新序列。

本说明书实施例还提供了一种数据状态更新设备,包括:

至少一个处理器;

以及,

与所述至少一个处理器通信连接的存储器;

其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:

确定数据的状态更新序列;

根据所述状态更新序列定时更新所述数据的状态;

对于任一所述数据,若该数据状态更新不成功达到指定次,则将该数据移出所述状态更新序列。

本说明书实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令被处理器执行时实现如下的步骤:

确定数据的状态更新序列;

根据所述状态更新序列定时更新所述数据的状态;

对于任一所述数据,若该数据状态更新不成功达到指定次,则将该数据移出所述状态更新序列。

本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:

由于是根据状态更新序列来更新数据的状态,并且将状态更新不成功达到指定次的数据移出状态更新序列,因而状态更新序列是可以不断变化和更新的,状态更新不成功的数据不会持续占用状态更新资源,从而能够提高数据状态更新效率。通过数据的处理时间和/或优先级来确定数据的状态更新序列,能够使得处理时间短和/或优先级高的数据更快得到状态更新,提高数据状态更新效率。

附图说明

为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对本说明书实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本说明书第一个实施例提供的一种数据状态更新系统的示意图。

图2是本说明书第二个实施例提供的一种数据状态更新方法的流程示意图。

图3是本说明书第二个实施例中的数据状态更新过程示意图。

图4是本说明书第三个实施例中的数据状态更新过程示意图。

图5是本说明书第四个实施例提供的一种数据状态更新装置的结构示意图。

图6是本说明书第四个实施例提供的另一种数据状态更新装置的结构示意图。

具体实施方式

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

在现有技术中,常用的方案是将数据按照创建时间进行排序,定时捞取前指定个数据进行扫描和状态更新。但是极易出现的一种情况是这前指定个数据中有的数据的业务明细卡住或者处理失败,则这些有业务明细卡住或者处理失败的数据(不妨简称“处理失败数据”)状态更新不成功并被放回,且每次捞取时都会将这些处理失败业务捞取出来并放回,从而占用捞取资源(或更新资源),使得其他排序靠后的业务明细已处理完毕的数据迟迟无法被捞取到。如图1所示,在本说明书的第一个实施例中,对任意或指定的数据,数据状态更新系统1确定数据的状态更新序列(例如状态更新序列有m个位置),根据所述状态更新序列定时更新所述数据的状态;对于任一所述数据,若该数据状态更新不成功达到指定次,则将该数据移出所述状态更新序列。

在本实施例中,由于是根据状态更新序列来更新数据的状态,并且将状态更新不成功达到指定次的数据移出状态更新序列,因而状态更新序列是可以不断变化和更新的,状态更新不成功的数据不会持续占用状态更新资源,从而能够提高数据状态更新效率。

从程序角度而言,上述流程的执行主体可以为计算机或者服务器或者相应的数据状态更细系统等,另外,也可以有第三方应用客户端协助流程的执行。

图2示出了本说明书第二个实施例提供的一种数据状态更新方法的流程示意图,图3示出了本说明书第二个实施例中的数据状态更新过程示意图。参考图2和图3,本实施例中的数据状态更新方法可以包括:

s101:确定数据的状态更新序列。

现有技术中,每个数据往往要经历一个或多个处理阶段才能最终处理完毕。每个数据会对应一定数量的业务明细,每条业务明细在每个处理阶段对应一定的业务逻辑,因此在每个处理阶段需要对各个数据的各条业务明细的业务逻辑进行处理。一般来说,在各个处理阶段,需要对各个数据定时进行扫描,检测批次对应的业务明细的业务逻辑是否完成,若某数据的全部业务明细的业务逻辑都已完成,则更新该数据的状态,该数据可以进入下一处理阶段。通常情况下,一方面在任一个处理阶段,每次会捞取指定个数据进行扫描,也就是说,每次所能进行状态检测和更新的数据的数量是有限的,不妨记为单次更新量;另一方面,在任一个处理阶段,被处理的数据量往往多于单次更新量。

在本实施例中,在任一个处理阶段,对需要进入该处理阶段的任意或指定或随机的数据,确定数据的状态更新序列(以下简称“序列”)。序列具有按序排列的若干位置,通常情况下序列的位置是有限的,序列的位置数可以固定,或者可以根据需要来确定或者变换序列的位置数。

可以通过以下方式确定数据的序列(相当于可以通过以下方式把数据分配到序列):

1、根据预测的数据处理时间。

对任意或指定的数据,若数据对应一定数量的业务明细,则数据在任一处理阶段的处理时间就是其对应的各条业务明细的业务逻辑在该处理阶段全部被处理完毕的时间。对任意或指定的数据,可以预测数据在任一处理阶段的处理时间。不妨以任意的某个数据a为例,若要预测数据a在任一处理阶段(不妨假定为第一处理阶段)的处理时间,可以根据数据a的同种数据(即与数据a类型相同的数据)在第一处理阶段的历史平均处理时间来预测数据a在第一处理阶段的处理时间(以下简称“数据a预测的处理时间”),比如可以将过去一定时间段内数据a的同种数据在第一处理阶段的平均处理时间作为数据a的处理时间。例如过去一周内数据a的同种数据在第一处理阶段被处理了n次,处理时间分别为a1、a2、……、an,则可以将(a1+a2+……+an)/n作为数据a的处理时间。

在本实施例中,每个处理阶段可以对应一个状态更新序列。在以下的叙述中,不妨假定第一处理阶段对应第一状态更新序列(以下简称“第一序列”),本实施例中不妨假定序列具有m个位置,即第1个位置、第2个位置、……、第m个位置,每个位置可以容纳一个或多个数据。。

第一序列的每个位置可以对应一定的处理时间区间或处理时间点(以下简称“时间区间”或“时间点”)。比如每个位置可以对应指定的时间区间,例如第一序列第1个位置(以下简称“第1位”)对应时间区间:0<t≤5;第2个位置(以下简称“第2位”)对应时间区间:5<t≤10;……;第m个位置(以下简称“第m位”)对应时间区间:(m-1)×5<t≤m×5。其中时间区间的单位可以是时、分、秒等,本实施例中不妨假定为秒。再比如每个位置可以对应指定的时间点,例如第1个位置对应从某个时间点(该时间点可以根据需要设置)开始第5秒;第2个位置对应从某个时间点开始第10秒;……;第m个位置对应从某个时间点开始第m×5秒。

特别的,上述的时间区间和时间点可以根据相邻两次定时更新的间隔(以下简称“定时更新间隔”)来确定,比如当前是每10秒更新一次数据状态,则上述的时间区间和时间点可以设置成10秒或者10秒的倍数(不一定是整数倍)或者不小于10秒,例如第1个位置对应时间区间:0<t≤10,或者第1个位置对应从某个时间点开始第10秒。

对于数据a来说,可以根据其预测的处理时间确定其所在位置。比如若数据a预测的处理时间为3秒,数据a处于第1位对应的时间区间内,则数据a位于第1位,即将数据a加入第1位;若数据a预测的处理时间为8秒,数据a处于第2位对应的时间区间内,则数据a位于第2位,以此类推。在第一序列的位置对应时间点的情况下,若数据a预测的处理时间为3秒,3秒处于0和第1位的时间点之间,则数据a位于第1位;若数据a预测的处理时间为8秒,8秒处于第1位和第2位的时间点之间,则数据a位于第2位,以此类推。可见,第一序列的位置对应时间区间或对应时间点可以是相通的。

由于第一序列的位置可能是有限的,因而可以把预测的处理时间大于m×5秒的数据也加入第m位。

2、根据数据的优先级。

不同的数据可能具有不同的优先级,因此可以根据数据的优先级确定数据在第一序列中的位置。在本实施例中,第一序列的每个位置可以对应不同的优先级,比如第1位可以对应最高级优先级,第2位可以对应第二级优先级,以此类推。

需要说明的是,第一序列的每个位置不一定只对应一级优先级,比如第1位可以对应最高级优先级和第二级优先级,第2位可以对应第三级优先级和第四级优先级,以此类推。

3、根据预测的数据处理时间和数据的优先级

可以根据预测的数据处理时间和数据的优先级综合确定数据在第一序列中的位置。比如当数据的优先级达到和/或高于指定优先级时,则可以仅根据优先级确定数据在第一序列中的位置;当数据的优先级低于指定优先级时,则可以仅根据预测的数据处理时间确定数据在第一序列中的位置。

仍以第一处理阶段和数据a为例,在数据a进入第一处理阶段之前或进入第一处理阶段之时,就可以如上确定数据a在第一序列中的位置,并将数据a加入第一序列的相应位置中,这样对于任一个需要进入第一处理阶段的数据,都可以将其加入第一序列中。需要说明的是,不排除第一序列的某个或某些位置上为空的情况。

s102:根据所述状态更新序列定时更新所述数据的状态。

对于一个数据来说,其预测的处理时间通常情况下会接近其实际的处理时间。在本实施例中,根据第一序列更新数据状态具体为:每次定时更新时,从第1位的数据开始扫描指定个数据(即单次更新量),检查这指定个数据中各个数据的各条业务明细是否都处理完毕,也就是执行定时更新任务。对于这指定个数据中的任一个数据,若该数据的各条业务明细都处理完毕,则该数据的状态更新成功;若该数据的各条业务明细没有都处理完毕(即数据没有处理完毕)或者有业务明细卡住或者处理失败(即数据处理错误),则该数据的状态更新不成功。若数据是因为没有处理完毕而导致状态更新失败,则数据会保留在序列中留待后续扫描。

在本实施例中,会将每次定时更新时状态更新成功的数据移出第一序列。假定数据a状态更新成功被移出了第一序列,若数据a进入下一处理阶段,则数据a可以进入下一处理阶段对应的状态更新序列。

可见,数据实际需要的处理时间越少,数据预测的处理时间也通常越少,在序列中的位置越靠前(第1位是最前的位置),因而也可以更快得到状态更新,从而可以提高数据状态更新效率。

进一步,任一次定时更新后,该次定时更新前第一序列非首个位置上的数据会前进一个位置,即该次定时更新前第2位上的数据在该次定时更新后会前进到第1位,该次定时更新前第3位上的数据在该次定时更新后会前进到第2位,……,该次定时更新前第m-2位上的数据在该次定时更新后会前进到第m-1位。对于该次定时更新前第m位上的数据来说,由于第m位上的数据的预测处理时间通常较长,因此该次定时更新前第m位上的数据可以在该次定时更新后不全部前进到第m-1位。可以按照如下规则:对于第m位上的任一数据,不妨记为数据b,将“定时更新间隔”记为t,将数据b预测的处理时间记为t,若数据b从加入第m位开始到之后的第i次定时更新经过的时间为t′,且t-c≤t′+(m-1)×t≤t+c,c为指定的数,则在上述第i次定时更新后数据b前进到第m-1位。其中,(m-1)×t为数据b从第m位前进到第1位需要的时间。通过这种规则,可以使得数据b从加入第m位到前进到第1位的时间接近甚至等于数据b预测的处理时间。

可见,对于第一序列的前m-1个位置中的任一位置,其上的数据的来源可以有两个,一是通过s101中的方式被分配到该位置的数据,二是由该位置的的后一个位置前进到该位置的数据。对于第一序列的第m个位置来说,其上的数据来源为通过s101中的方式被分配而来。可见,第一序列中各个位置上的数据数量是可以不断变化的,因而在定时更新时,第1位的数据数量可能多于或少于或等于单次更新量。一种情况可以是,不论定时更新时第1位上的数据数量有多少,都只扫描第1位上的数据;另一种情况可以是,若在定时更新时,第1位的数据的数量小于单次更新量,则可以按照第一序列的位置顺序扫描第2位及以后各位置上的数据。

在每次定时更新前,可以将第1位上的数据进行排序,不管第1位上的数据是何种来源。具体来说,可以按照数据的创建时间和/或进入第一处理阶段的时间和/或进入第1位的时间和/或优先级进行排序,创建时间和/或进入第一处理阶段的时间越早和/或优先级越高的数据排序越靠前。在对第1位上的数据进行排序的基础上,还可以对其他位置上的数据按照同样方式进行排序。在对第一序列单个位置上的数据进行排序的基础上,每次定时更新时,从第1位的排序第1的数据开始,按照单次更新量扫描数据。同样的,可以只扫描第1位上的数据,或若在定时更新时第1位的数据的数量小于单次更新量,可以扫描第2位及以后各位置上的数据,且对于第2位或以后各个位置,只要其上的数据只要进行了排序,则对其上的数据进行扫描时都可以按序扫描。

下面对定时更新过程进行进一步说明:

假定定时更新间隔是5秒,即每5秒扫描一次第一序列,第一序列每个位置的时间区间的跨度也为5秒,即第1位对应时间区间:0<t≤5;第位对应时间区间:5<t≤10;……;第m位对应时间区间:(m-1)×5<t≤m×5。仍以数据a为例,考虑几种情况(不考虑业务明细处理错误的情况):

(1)数据a一开始未被分配到第1位。不妨假定预测的数据a在第一处理阶段的处理时间为15秒,数据a进入第一处理阶段之时会被加入第3位,与此同时,数据a也会开始第一处理阶段的处理。若每次定时更新只扫描第一序列第1位的前指定个数据,在数据a被加入第一序列后,经过两次定时更新,数据a就可以进入第1位。数据a被加入第一序列后第三次定时更新时,数据a可能会被扫描到。从数据a被加入第一序列到数据a被加入第一序列后第三次定时更新所需要的时间大于等于15秒,从数据a被加入第一序列到数据a被第一次扫描到的时间大于等于从数据a被加入第一序列到数据a被加入第一序列后第三次定时更新所需要的时间,也就大于等于预测的数据a的处理时间,因而数据a被加入第一序列后,不管是其被上述的第三次定时更新扫描到,还是被之后的某次定时更新扫描到,被扫描到时数据a通常已经被处理完毕,这样第一次被扫描到时数据a就可以状态更新成功。即使数据a第一次被扫描到时其尚未处理完毕,但由于从数据a被加入第一序列到数据a被第一次扫描到的时间大于等于预测的数据a的处理时间,故经过这一次扫描后,数据a还需要的处理时间较短。即使每次定时扫描前第1位的数据会重新排序,由于数据a的创建时间和/或进入第一处理阶段的时间不变,数据a接下来仍会被扫描到,且到时数据a通常已处理完毕,从而状态更新会成功。

由于第1位上的数据可以按照创建时间和/或进入第一处理阶段的时间排序,因而当数据a进入第1位后,即使有新的数据由于预测的处理时间短也被加入第1位,但由于数据a的创建时间和/或进入第一处理阶段的时间较早,因而也可以在第1位中排名更靠前,从而可以更快被扫描和更新。

(2)考虑按照预测处理时间来分配序列位置的情况下,假定数据a一开始被分配到第1位,每次定时更新只扫描第一序列第1位的前指定个数据。若在数据a被分配位置后的第一次定时更新时其被扫描到,由于数据a能够被分配到第1位,说明数据a预测的处理时间本来不长,小于等于定时更新间隔,因而数据a第一次被扫描到时通常已处理完毕,可以更新状态。即使数据a第一次被扫描到时尚未处理完毕,经过这一次扫描后,数据a还需要的处理时间更短。即使每次定时扫描前第1位的数据会重新排序,由于数据a的创建时间和/或进入第一处理阶段的时间不变,数据a接下来仍会被扫描到,且到时数据a通常已处理完毕,从而状态更新会成功。

(3)假定数据a一开始被分配到第1位,在之后的第一次定时更新时数据a未被扫描到,由于数据a的创建时间和/或进入第一处理阶段的时间不变,接下来定时更新时数据a的排序会前进,更易被扫描到,且到时参考(2),数据a通常已处理完毕,从而状态更新会成功。

(4)若需要考虑数据的优先级,则高优先级的数据分配的位置可能更靠前,并更快被扫描到。有的数据虽然优先级高,被分配的位置靠前,但其预测的处理时间较长,可能会被扫描多次后才更新成功,在这多次扫描中都会占用更新资源。不过由于顾及了优先级因素,因而能够使优先级高的数据更快得到状态更新,具有一定的有益效果,在某些情况下可能是必须的。

可见,在本实施例中,不管数据被预测的处理时间或长或短,都会被分配到合适的序列位置,一方面预测的处理时间越少的数据在序列中的位置可以越靠前,因而也可以更快得到状态更新;另一方面数据从被加入序列到被扫描到所需的时间与数据所需的处理时间更加吻合,能够缩短数据被处理完毕到被更新状态的间隔时间,使得被处理完毕的数据可以更快得到状态更新;再一方面,可以兼顾和平衡处理时间和优先级,因而本实施例具有更好的普适性。在此基础上,本实施例有利于保证每次定时更新时所扫描到的数据都是处理完毕、能够或需要进行状态更新的数据。通过本实施例,能够提高数据状态更新效率。

s103:对于任一所述数据,若该数据状态更新不成功达到指定次,则将该数据移出所述状态更新序列。

可能的一种情况是,数据被扫描到时状态更新不成功是由于某些非时间性错误(例如前述的业务明细卡住或者处理失败),这些错误不会随着时间的推移而自动纠正,即使再被扫描仍然会状态更新失败。仍以数据a为例,若数据a被扫描到时出现了上述的非时间性错误,则将数据a移出序列。

在本实施例中,可以通过检查数据的业务明细的业务逻辑来发现数据是否出现了上述非时间性错误,还可以通过状态更新不成功的次数判断是否需要将数据移出序列。仍以数据a为例,正常情况下,按照本实施例的内容,数据a应该经过一次或几次扫描后能够状态更新成功。若数据a经过指定次扫描后仍然状态更新失败,则可以判定数据a出现了上述的非时间性错误,即可将数据a移出序列。

对于出现上述非时间性错误的数据来说,这种数据不会通过定时扫描完成状态更新,本实施例中因为出现上述非时间性错误而状态更新失败的数据会被去除,能够及时解放定时更新资源,提高数据状态更新效率。

本说明书第三个实施例除了包括第一和/或第二个实施例的内容外,还包括:数据可以经过多个处理阶段,每个处理阶段可以对应一个状态更新序列,前一个处理阶段对应的状态更新序列中状态更新成功的数据加入后一个处理阶段对应的状态更新序列,各个状态更新序列都可以采用上面记载的状态更新过程。比如如图4所示,第一序列的第1位更新成功的数据可以进入第二处理阶段对应的第二序列,第二序列的定时更新过程同第一序列。

进一步,若有数据出现上述非时间性错误,则可以进行提示,并定时检测这种数据被移出序列后是否出现了状态更新成功的情况(例如有可能在提示后有人工介入对这种数据进行处理和状态更新)。若是,则可以将这种数据加入其被移除的状态更新序列对应的处理阶段的下一个处理阶段对应的状态更新序列。

基于同样的思路,如图5所示,本说明书第四个实施例提供了一种数据状态更新装置,包括:

排队模块201,用于确定数据的状态更新序列;

状态更新模块202,用于根据所述状态更新序列定时更新所述数据的状态;

出队模块203,用于对于任一所述数据,若该数据状态更新不成功达到指定次,则将该数据移出所述状态更新序列。

可选的,如图6所示,所述装置还包括:

时间预测模块204,用于对任意或指定的数据,预测所述数据的处理时间;

和/或,

优先级确定模块205,用于对任意或指定的数据,确定所述数据的优先级;

所述排队模块201根据预测的处理时间和/或所述优先级确定数据的状态更新序列。

可选的,若所述数据的优先级达到和/或高于指定优先级,则仅根据优先级将所述数据加入到状态更新序列。

可选的,所述状态更新序列具有按序排列的若干位置,每个位置容纳一个或多个数据。

可选的,根据预测的处理时间确定数据的状态更新序列包括:

所述状态更新序列的每一位置对应一定的时间区间或时间点;

根据预测的处理时间确定所述数据在状态更新序列中的位置;

和/或,

根据预测的处理时间确定数据的状态更新序列包括:

所述状态更新序列的每一位置对应一定的时间区间或时间点;

根据预测的处理时间确定所述数据在状态更新序列中的位置;

处理时间越短的数据在状态更新序列中的位置越靠前;

和/或,

根据所述优先级确定数据的状态更新序列包括:

优先级越高的数据在状态更新序列中的位置越靠前;

和/或,

根据所述优先级确定数据的状态更新序列包括:

优先级越高的数据在状态更新序列中的位置越靠前,优先级最高的数据处于状态更新序列的第一个位置。

可选的,所述时间区间的跨度为相邻两次定时更新的时间间隔;

或,

所述时间区间的跨度为相邻两次定时更新的时间间隔的倍数;

和/或,

所述时间区间的跨度不小于相邻两次定时更新的时间间隔。

可选的,根据所述状态更新序列定时更新所述数据的状态包括:

定时更新位于所述状态更新序列的首个位置上的一个或多个数据的状态;

或,

每次定时更新前,将位于所述状态更新序列的首个位置或包括首个位置在内的多个位置上的数据进行排序,定时更新位于所述首个位置且排序靠前的一个或多个数据的状态;

或,

从所述状态更新序列的首个位置上的数据开始,定时更新指定个数据的状态;

或,

每次定时更新前,将位于所述状态更新序列的首个位置或包括首个位置在内的多个位置上的数据进行排序,从所述状态更新序列的首个位置上的首位数据开始,定时更新指定个数据的状态。

可选的,将位于所述状态更新序列的首个位置或包括首个位置在内的多个位置上的数据进行排序包括:

将位于所述状态更新序列的首个位置的数据按照创建时间和/或优先级进行排序。

可选的,所述排队模块201还用于:

每次定时更新所述数据的状态后,将非首个位置上的数据前进一个位置。

可选的,数据的每个处理阶段对应一个状态更新序列,所述状态更新模块202还用于:对各个状态更新序列中的数据的状态进行定时更新。

可选的,所述出队模块203还用于:

将状态更新成功的数据移出所述状态更新序列。

可选的,所述排队模块201还用于:

将前一个处理阶段对应的状态更新序列中状态更新成功的数据加入后一个处理阶段对应的状态更新序列;

和/或,

所述出队模块203还用于:

对于任一状态更新序列中的任一数据,若该数据状态更新不成功达到指定次,则将该数据移出所在的状态更新序列;

和/或,

所述出队模块203还用于:

对于任一状态更新序列中的任一数据,若该数据状态更新不成功达到指定次,则将该数据移出所在的状态更新序列并进行提示;

和/或,

对于任一状态更新序列中的任一数据,若该数据状态更新不成功达到指定次,则所述出队模块203将该数据移出所在的状态更新序列;若该数据被移出状态更新序列后状态更新成功,则所述排队模块201将该数据加入其被移除的状态更新序列的下一个状态更新序列。

基于同样的思路,本说明书第五个实施例提供了一种数据状态更新设备,包括:

至少一个处理器;以及,

与所述至少一个处理器通信连接的存储器;

其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:

确定数据的状态更新序列;

根据所述状态更新序列定时更新所述数据的状态;

对于任一所述数据,若该数据状态更新不成功达到指定次,则将该数据移出所述状态更新序列。

基于同样的思路,本说明书第六个实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令被处理器执行时实现如下的步骤:

确定数据的状态更新序列;

根据所述状态更新序列定时更新所述数据的状态;

对于任一所述数据,若该数据状态更新不成功达到指定次,则将该数据移出所述状态更新序列。

上述对本说明书特定实施例进行了描述,其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,附图中描绘的过程不一定必须按照示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备、非易失性计算机可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本说明书实施例提供的装置、设备、非易失性计算机可读存储介质与方法是对应的,因此,装置、设备、非易失性计算机存储介质也具有与对应方法类似的有益技术效果,由于上面已经对方法的有益技术效果进行了详细说明,因此,这里不再赘述对应装置、设备、非易失性计算机存储介质的有益技术效果。

在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(programmablelogicdevice,pld)(例如现场可编程门阵列(fieldprogrammablegatearray,fpga))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片pld上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logiccompiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(hardwaredescriptionlanguage,hdl),而hdl也并非仅有一种,而是有许多种,如abel(advancedbooleanexpressionlanguage)、ahdl(alterahardwaredescriptionlanguage)、confluence、cupl(cornelluniversityprogramminglanguage)、hdcal、jhdl(javahardwaredescriptionlanguage)、lava、lola、myhdl、palasm、rhdl(rubyhardwaredescriptionlanguage)等,目前最普遍使用的是vhdl(very-high-speedintegratedcircuithardwaredescriptionlanguage)与verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。

控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:arc625d、atmelat91sam、microchippic18f26k20以及siliconelabsc8051f320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

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

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

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

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

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

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

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

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

本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

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

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