一种限时任务处理方法、装置、设备及介质与流程

文档序号:17661129发布日期:2019-05-15 22:23阅读:175来源:国知局
一种限时任务处理方法、装置、设备及介质与流程

本申请涉及计算机技术领域,尤其涉及一种限时任务处理方法、装置、设备及介质。



背景技术:

现有技术中,有些任务具有明确的执行开始时间以及执行终止时间,比如xxxx年x月x日生效(即开始执行),xxxx年x月x日终止(即终止执行),这样在一定时间内执行的任务可以看作是限时任务。同时,对任务的处理能力通常是有限的,若某个时间点或时间段所要执行的任务量超出阈值,则会造成任务处理问题。因此,当接收一个限时任务后,需要确定该限时任务限定的执行时间内的每个单位时间是否还有能力处理该限时任务。

现有技术中,当接收一个限时任务后,需要将该限时任务与已有的限时任务一一进行对比,来确定该限时任务限定的执行时间内的每个单位时间是否还有能力处理该限时任务,处理效率非常低。特别是限时任务限定的执行时间较长时,所包含的单位时间数量也较多,进一步降低了处理效率。

有鉴于此,需要更高效的限时任务处理方案。



技术实现要素:

本说明书实施例提供了一种限时任务处理方法、装置、设备及介质,用以解决如何更高效地进行限时任务处理的技术问题。

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

本说明书实施例提供一种限时任务处理方法,包括:

对于任一限时任务,根据线段树由初始时间区间确定一个或多个子时间区间,直至至少出现该限时任务对应的子时间区间组合;其中,所述子时间区间组合满足:所述组合中的子时间区间叠加得到的连续时间区间的起终时间与该限时任务限定的起终时间相同;

将所述组合中的子时间区间作为该限时任务对应的目标区间,根据各个目标区间的值确定是否处理该限时任务;

若是,则处理该限时任务,并更新包含至少一个目标区间的子时间区间的值。

本说明书实施例提供另一种限时任务处理方法,包括:

根据线段树由初始时间区间确定一个或多个子时间区间;

对于任一限时任务,确定该限时任务对应的子时间区间组合;其中,所述子时间区间组合满足:所述组合中的子时间区间叠加得到的连续时间区间的起终时间与该限时任务限定的起终时间相同;

将所述组合中的子时间区间作为该限时任务对应的目标区间,根据各个目标区间的值确定是否处理该限时任务;

若是,则处理该限时任务,并更新包含至少一个目标区间的子时间区间的值。

本说明书实施例提供一种限时任务处理装置,包括:

区间确定模块,用于对于任一限时任务,根据线段树由初始时间区间确定一个或多个子时间区间,直至至少出现该限时任务对应的子时间区间组合;其中,所述子时间区间组合满足:所述组合中的子时间区间叠加得到的连续时间区间的起终时间与该限时任务限定的起终时间相同;

处理判断模块,用于将所述组合中的子时间区间作为该限时任务对应的目标区间,根据各个目标区间的值确定是否处理该限时任务;

处理更新模块,用于若所述处理判断模块确定处理该限时任务,则处理该限时任务,并更新包含至少一个目标区间的子时间区间的值。

本说明书实施例提供另一种限时任务处理装置,包括:

区间确定模块,用于根据线段树由初始时间区间确定一个或多个子时间区间;

组合确定模块,用于对于任一限时任务,确定该限时任务对应的子时间区间组合;其中,所述子时间区间组合满足:所述组合中的子时间区间叠加得到的连续时间区间的起终时间与该限时任务限定的起终时间相同;

处理判断模块,用于将所述组合中的子时间区间作为该限时任务对应的目标区间,根据各个目标区间的值确定是否处理该限时任务;

处理更新模块,用于若所述处理判断模块确定处理该限时任务,则处理该限时任务,并更新包含至少一个目标区间的子时间区间的值。

本说明书实施例提供一种限时任务处理设备,包括:

至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,

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

对于任一限时任务,根据线段树由初始时间区间确定一个或多个子时间区间,直至至少出现该限时任务对应的子时间区间组合;其中,所述子时间区间组合满足:所述组合中的子时间区间叠加得到的连续时间区间的起终时间与该限时任务限定的起终时间相同;

将所述组合中的子时间区间作为该限时任务对应的目标区间,根据各个目标区间的值确定是否处理该限时任务;

若是,则处理该限时任务,并更新包含至少一个目标区间的子时间区间的值。

本说明书实施例提供另一种限时任务处理设备,包括:

至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,

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

根据线段树由初始时间区间确定一个或多个子时间区间;

对于任一限时任务,确定该限时任务对应的子时间区间组合;其中,所述子时间区间组合满足:所述组合中的子时间区间叠加得到的连续时间区间的起终时间与该限时任务限定的起终时间相同;

将所述组合中的子时间区间作为该限时任务对应的目标区间,根据各个目标区间的值确定是否处理该限时任务;

若是,则处理该限时任务,并更新包含至少一个目标区间的子时间区间的值。

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

对于任一限时任务,根据线段树由初始时间区间确定一个或多个子时间区间,直至至少出现该限时任务对应的子时间区间组合;其中,所述子时间区间组合满足:所述组合中的子时间区间叠加得到的连续时间区间的起终时间与该限时任务限定的起终时间相同;

将所述组合中的子时间区间作为该限时任务对应的目标区间,根据各个目标区间的值确定是否处理该限时任务;

若是,则处理该限时任务,并更新包含至少一个目标区间的子时间区间的值。

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

根据线段树由初始时间区间确定一个或多个子时间区间;

对于任一限时任务,确定该限时任务对应的子时间区间组合;其中,所述子时间区间组合满足:所述组合中的子时间区间叠加得到的连续时间区间的起终时间与该限时任务限定的起终时间相同;

将所述组合中的子时间区间作为该限时任务对应的目标区间,根据各个目标区间的值确定是否处理该限时任务;

若是,则处理该限时任务,并更新包含至少一个目标区间的子时间区间的值。

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

采用线段树方式将初始区间划分为子时间区间,根据限时任务限定的起终时间确定对应的目标区间,根据目标区间的值来确定是否对限时任务进行处理,从而将限时任务转化为对应的一个或多个目标区间,利用目标区间即可对限时任务进行管理,有效降低性能开销,提高限时任务处理效率。由于采用线段树方式来划分子时间区间,可以方便的对子时间区间的值进行修改或统计,从而更加有利于确定目标区间的值,进一步提高限时任务处理效率。

附图说明

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

图1是本说明书第一个实施例中限时任务处理系统的工作示意图。

图2是本说明书第二个实施例中限时任务处理方法的流程示意图。

图3是本说明书第二个实施例中的对初始时间区间进行线段树分割的示意图。

图4是本说明书第二个实施例中确定限时任务对应组合的过程示意图。

图5是本说明书第三个实施例中限时任务处理系统的工作示意图。

图6是本说明书第四个实施例中限时任务处理方法的流程示意图。

图7是本说明书第四个实施例中的一种确定限时任务对应组合的过程示意图。

图8是本说明书第四个实施例中的另一种确定限时任务对应组合的过程示意图。

图9是本说明书第五个实施例中的一种限时任务处理装置的结构示意图。

图10是本说明书第五个实施例中的另一种限时任务处理装置的结构示意图。

图11是本说明书第六个实施例中的限时任务处理装置的结构示意图。

具体实施方式

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

如图1所示,本说明书第一个实施例提供了限时任务处理系统,具体的,限时任务处理系统对于任一限时任务,根据线段树由初始时间区间确定一个或多个子时间区间,直至至少出现该限时任务对应的子时间区间组合;其中,所述子时间区间组合满足:所述组合中的子时间区间叠加得到的连续时间区间的起终时间与该限时任务限定的起终时间相同;限时任务处理系统将所述组合中的子时间区间作为该限时任务对应的目标区间,根据各个目标区间的值确定是否处理该限时任务;若是,则限时任务处理系统处理该限时任务,并更新包含至少一个目标区间的子时间区间的值。

在本实施例中,采用线段树方式将初始区间划分为子时间区间,根据限时任务限定的起终时间确定对应的目标区间,根据目标区间的值来确定是否对限时任务进行处理,从而将限时任务转化为对应的一个或多个目标区间,利用目标区间即可对限时任务进行管理,有效降低性能开销,提高限时任务处理效率。由于采用线段树方式来划分子时间区间,可以方便的对子时间区间的值进行修改或统计,从而更加有利于确定目标区间的值,进一步提高限时任务处理效率。

从程序角度而言,上述流程的执行主体可以为计算机或者服务器或者相应的限时任务处理系统等。另外,也可以由第三方应用客户端协助所述执行主体执行上述流程。

图2是本说明书第二个实施例中的限时任务处理方法的流程示意图,该限时任务处理方法包括:

s101:对于任一限时任务,根据线段树由初始时间区间确定一个或多个子时间区间,直至至少出现该限时任务对应的子时间区间组合;其中,所述子时间区间组合满足:所述组合中的子时间区间叠加得到的连续时间区间的起终时间与该限时任务限定的起终时间相同,。

在本实施例中,对于一个限时任务来说,可以把它的执行开始时间(或生效时间)作为限定起始时间,把它的执行终止时间(或到期时间)作为限定终止时间,把限定起始时间和限定终止时间统称为限定的起终时间(以下简称“限定起终时间”,限定起终时间实际包括了两个时间)。通过限定起终时间可以确定限定起终时间区间,该区间的起始时间为限定起始时间,终止时间为限定终止时间。

在本实施例中,可以确定一个初始时间区间,限定起终时间属于初始时间区间的限时任务可以被处理。相应的,若某限时任务的限定起终时间不全部属于初始时间区间,则确定不处理该限时任务。初始时间区间可以根据需要设置或者变化,例如将一个年度的开始和结束时间作为初始时间区间的起始和终止时间,则初始时间区间则为一个年度;将一个月度的开始和结束时间作为初始时间区间的起始和终止时间,则初始时间区间则为一个月度;将一天的开始和结束时间作为初始时间区间的起始和终止时间,则初始时间区间则为一天。在本实施例中,各种时间区间可以为闭区间,即时间区间是完整的,具有具体的起始时间和终止时间。对于一个时间区间【a,b】来说,将a作为它的起始时间,将b作为它的终止时间。

在本实施例中,可以利用线段树的方式由初始时间区间确定一个或多个子时间区间。线段树是一种二叉搜索树,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶节点(节点也可做“结点”)。线段树的具体使用方式为:对于给定区间【m,n】(可以称为原始区间或初始区间),若m<n,则计算l=(m+n)/2(其中l取整,下文出现的二分操作也均取整),可以将该区间分割成左子区间【m,l】和右子区间【l+1,n】。假设原始区间为【1,k】,通过递归来逐步进行分割,通过递归方式来逐步分解,假设根的高度为1,则线段树的最大高度为log2(k+1)(k≥1)。线段树对于每个k的分解是唯一的,所以k相同的线段树结构相同,从而能够实现可持久化线段树。可见,在线段树中,每个节点都可以是区间,根节点对应初始区间,叶节点对应单元区间,各层节点对应各层分割得到的区间,每个节点可以对应自身区间的统计信息。在本实施例中,可以把线段树的根节点和各个节点都变成时间区间,其中,根节点对应初始时间区间,各层节点对应由初始时间开始,经过分割得到的各层的子时间区间,单元区间对应单位时间区间。

以下以初始时间区间为一个月度为例,假设月度天数为30,并分别用1,2,3,……,30表示月度的第1天,第2天,第3天,……,第30天,即初始时间区间的起始时间为第1天开始(第1天0点),终止时间为第30天(第30天24点)。另外约定,【a,b】(a≤b)表示“第a天开始(第a天0点),第b天终止(第b天24点)”这一时间区间;若a=b,则【a,a】表示“第a天”这一时间区间(第a天0点到24点),并简写为【a】。另外,可以设置单位时间,即单位时间区间,当时间区间的长度为单位时间时可以不必再分,对应线段树中的单元区间,也就是叶节点。不妨将单位时间设定为1天,从而当出现【a,a】这类时间区间时,不必再对其进行分割。当最后得到的全部为单位时间区间时,则得到了以初始时间区间为根的完整分割结果。图3示出了当初始时间区间为【1,30】时的完整分割结果,最终得到各层子时间区间以及单位时间区间【1】,【2】,……,【30】(各单位时间区间不一定在同一层)。

对于任一个限时任务(不妨称为任务a),可以确定限时任务对应的子时间区间组合(以下简称“组合”),所述组合满足:组合中的子时间区间来自于初始时间区间的分割结果,组合中的子时间区间叠加得到的连续时间区间的起终时间与限时任务限定的起终时间相同(即起始时间分别相同,终止时间分别相同)。

在本实施例中,不一定事先确定初始时间区间的完整分割结果,而是根据限时任务的限定起终时间来确定由初始时间区间分割到什么程度。一般来说,要分割到至少出现限时任务对应的子时间区间组合。

在本实施例中,根据线段树由初始时间区间确定一个或多个子时间区间,直至至少出现该限时任务对应的子时间区间组合包括:

根据线段树对所述初始时间区间进行分割,其中初始时间区间作为第一层节点;

自第一层节点开始,每确定一层节点,则确定与该层节点对应的由所述限定起终区间分割出的同层节点,并根据由所述限定起终区间分割出的同层对应节点确定是否继续下一层线段树分割;

当由初始时间区间得到的某节点与由限定起终时间区间得到的同层对应节点相同时,将该对相同节点中的一个挑选出来;

所有挑选出来的这些节点形成限时任务对应的组合。

根据由所述限定起终区间分割出的同层对应节点确定是否继续下一层线段树分割包括:

将由初始时间区间得到的节点记为第一节点,将由限定起终时间区间得到的节点记为第二节点;

若第一节点和第二节点的起终时间分别相同,则不对所述第一节点进行下一层分割;

若第二节点的限定终止时间小于等于(第一节点起始时间+第一节点终止时间)/2,则将第一节点分割出左孩子节点【第一节点起始时间,(第一节点起始时间+第一节点终止时间)/2】;

若第二节点的限定开始时间大于(第一节点起始时间+第一节点终止时间)/2,则将第一节点分割出右孩子节点【(第一节点起始时间+第一节点终止时间)/2+1,第一节点终止时间】;

若第二节点的限定开始时间小于等于(第一节点起始时间+第一节点终止时间)/2,限定终止时间大于(第一节点起始时间+第一节点终止时间)/2,则将第一节点分割出上述的左孩子节点和右孩子节点;将第二节点分割成【第二节点起始时间,(第一节点起始时间+第一节点终止时间)/2】和【(第一节点起始时间+第一节点终止时间)/2+1,限定终止时间】。

下面对上述确定组合的过程进行进一步说明(本实施例不限于以下方式):

在限定起终时间区间属于初始时间区间的情况下,分以下情况讨论:

1.1、将限定起终时间区间和初始时间区间分别作为根节点(相当于一层节点),若限定起终时间与初始时间区间的起终时间分别相同(即限定起终时间区间与初始时间区间相同),则可以将初始时间区间作为组合中的唯一子时间区间,即组合已经可以确定。

1.2、若限定终止时间小于等于(初始时间区间起始时间+初始时间区间终止时间)/2,则可将初始时间区间分割出左孩子节点【初始时间区间起始时间,(初始时间区间起始时间+初始时间区间终止时间)/2】,不妨记为第一层左孩子节点;

1.3、若限定开始时间大于(初始时间区间起始时间+初始时间区间终止时间)/2,则可将初始时间区间分割出右孩子节点【(初始时间区间起始时间+初始时间区间终止时间)/2+1,初始时间区间终止时间】(假设限定起终时间区间也是以天为单位时间的,若限定开始时间大于(初始时间区间起始时间+初始时间区间终止时间)/2,则至少大1天),不妨记为第一层右孩子节点。

1.4、若限定开始时间小于等于(初始时间区间起始时间+初始时间区间终止时间)/2,限定终止时间大于(初始时间区间起始时间+初始时间区间终止时间)/2,则可将初始时间区间分割出上述的左孩子节点和右孩子节点,不妨记为第一层左、右孩子节点。这种情况下,也将限定起终时间区间分割成【限定起始时间,(初始时间区间起始时间+初始时间区间终止时间)/2】(不妨记为第一层左节点)和【(初始时间区间起始时间+初始时间区间终止时间)/2+1,限定终止时间】(不妨记为第一层右节点)。

上述的比较过程可以称为第一层比较。

在1.2的情况下,将限定起终时间与第一层左孩子节点进行比较;在1.3的情况下,将限定起终时间与第一层右孩子节点进行比较;在1.4的情况下,将第一左节点的起终时间与第一层左孩子节点进行比较,将第一右节点的起终时间和第一次右孩子节点进行比较。这里的比较过程可以称为第二层比较,第二层比较的标准同第一层比较,且第二层比较中每种情况下都可能出现1.1或1.2或1.3或1.4的结果,从而可以根据结果确定是否对第一层左孩子节点或第一层右孩子节点或第一层左节点或第一层右节点进行分割。

当由初始时间区间得到的某孩子节点与由限定起终时间区间得到的同层对应节点相同时(记为成对相同节点),则不需再对该孩子节点进行分割。将每对相同节点中的一个挑选出来,挑选出来的这些节点形成限时任务对应的组合。这种方式得到的组合所包含的子时间区间的数量是最少的。

如图4所示,仍以【1,30】作为初始时间区间,假设任务a的限定起始时间为x(x≥1),限定终止时间为y(y≤30),则任务a的限定起终时间区间为【x,y】。不妨x=10,y=20,则任务a对应的组合(即【10,20】对应的组合)的确定过程如下:

由于10小于(1+30)/2=15,20大于(1+30)/2=15,则可将【1,30】分割出【1,15】(第一层左孩子节点)和【16,30】(第一层右孩子节点),并可将【10,20】分割出【10,15】(第一层左节点)和【16,20】(第一层右节点);

将【10,15】与【1,15】比较,由于10大于(1+15)/2=8,则可将【1,15】分割出【9,15】(第二层右孩子节点),【10,15】作为第二层右节点;将【16,20】与【16,30】比较,由于20小于(16+30)/2=23,则可将【16,30】分割出【16,23】(第二层左孩子节点),【16,20】作为第二层左节点;

将【10,15】与【9,15】比较,由于10小于(9+15)/2=12,15大于(9+15)/2=12,则可将【9,15】分割出【9,12】(第三层左孩子节点1)和【13,15】(第三层右孩子节点1),并将可将【10,15】分割出【10,12】(第三层左节点1)和【13,15】(第三层右节点1);将【16,20】与【16,23】比较,由于16小于(16+23)/2=19,20大于(16+23)/2=19,则可将【16,23】分割出【16,19】(第三层左孩子节点2)和【20,23】(第三层右孩子节点2),并可将【16,20】分割出【16,19】(第三层左节点2)和【20】(第三层右节点2);

将【10,12】与【9,12】比较,由于10等于(9+12)/2=10,12大于(9+12)/2=10,则可将【9,12】分割出【9,10】(第四层左孩子节点1)和【11,12】(第四层右孩子节点1),并可将【10,12】分割出【10】(第四层左节点1)和【11,12】(第四层右节点1);将【13,15】(第三层右节点1)与【13,15】(第三层右孩子节点1)比较,由于两者起终时间相同,故不需分割;将【16,19】(第三层左节点2)与【16,19】(第三层左孩子节点2)比较,由于两者起终时间相同,故不需分割;将【20】与【20,23】比较,由于20小于(20+23)/2=21,故可将【20,23】分割出【20,21】(第四层左孩子节点2)和【22,23】(第四层右孩子节点2),【20】作为第四层左节点2。

将【10】与【9,10】比较,由于10大于(9+10)/2=9,故可将【9,10】分割出【9】(第五层左孩子节点1)和【10】(第五层右孩子节点1),【10】作为第五层右节点;【11,12】(第四层右节点1)与【11,12】(第四层右孩子节点1)比较,由于两者起终时间相同,故不需分割;将【20】与【20,21】比较,由于20等于(20+21)/2=20,故可将【20,21】分割成【20】(第五层左孩子节点2)和【21】(第五层右孩子节点2),【20】作为第五层左节点。

将【10】(第五层右孩子节点1)与【10】(第五层右节点)比较,由于两者起终时间相同,故不需分割;将【20】(第五层左孩子节点2)与【20】(第五层左节点)比较,由于两者起终时间相同,故不需分割。

由上可知,由初始时间区间得到的各层节点和由限定起终时间得到的同层节点是对应的。

将与由限定起终时间区间得到的同层对应节点相同的孩子节点挑选出来,即上例中的【10】、【20】、【11,12】、【13,15】、【16,19】,这些节点都不需要再进行分割,且这些节点形成【10,20】对应的组合,组合内的子时间区间叠加结果为【10,20】。特别的,若任务a的限定起终时间区间为【1,30】,则在将限定起终时间区间与初始时间区间比较时,就可以把初始时间区间作为任务a对应的组合内的唯一子时间区间,而不需要再向下分割和比较。

可见,在上述过程中,以初始时间区间为根的分割即为按照线段树进行分割的过程,以限定起终时间区间为根的分割则是随初始时间区间的分割而分割,并且不需要得到初始时间区间的完整分割结果,仅根据限定起终时间区间和初始时间区间来确定需要分割出的节点(即上述的各个孩子节点,图4中虚线框代表实际需要确定的孩子节点,除虚线框之外的节点可以不用确定);当然,在本实施例中,当得到上述组合后,也可以按照线段树继续对子时间区间进行分割,直至得到初始时间区间的完整分割结果。另外,除了线段树之外,还可以用其他方式确定限时任务对应的组合,这时组合内的子时间区间不限于由线段树分割而来。

s102:将所述组合中的子时间区间作为该限时任务对应的目标区间,根据各个目标区间的值确定是否处理该限时任务。

如前述,每个节点可以对应自身区间的统计信息,同样的,每个时间区间也可以对应一定的数据,例如可以对应一定的值。在本实施例中,将限时任务对应的组合中的子时间区间作为限时任务对应的目标区间,根据各个目标区间的值确定是否处理该限时任务。

仍以任务a为例,具体来说,根据各个目标区间的值确定是否处理该限时任务包括:

若至少有一个该限时任务所对应的目标区间的值达到第一阈值,则不处理该限时任务(因为如果有一个该限时任务所对应的目标区间的值达到第一阈值,若确定对该限时任务进行处理,则该限时任务对应的目标区间的值一般要增加,从而就会有目标区间的值超过第一阈值;第一阈值一般是根据系统或机器处理能力确定的,若某个目标区间的值超过第一阈值,则说明在该目标区间对应的时间内需要处理的任务量是超过系统或机器处理能力的,从而会造成任务处理问题);和/或,

确定该限时任务所对应的值最大的目标区间(可以有多个并列目标区间),若所述值最大的目标区间的值达到第一阈值,则不处理该限时任务(同上,若确定对该限时任务进行处理,则一般该值最大的目标区间的值会超过第一阈值);和/或,

确定若处理该限时任务时,该限时任务所对应的各个目标区间的预期值;

若至少有一个该限时任务所对应的目标区间的预期值超过第一阈值,则不处理该限时任务(同上,若某个目标区间的预期值超过第一阈值,则说明在该目标区间对应的时间内需要处理的任务量是超过系统或机器处理能力的,从而会造成任务处理问题);和/或,

确定若处理该限时任务时,该限时任务所对应的各个目标区间的预期值;

确定该限时任务所对应的预期值最大的目标区间,若所述预期值最大的目标区间的预期值超过第一阈值,则不处理该限时任务(同上,若某个目标区间的预期值超过第一阈值,则说明在该目标区间对应的时间内需要处理的任务量是超过系统或机器处理能力的,从而会造成任务处理问题);和/或,

确定若处理该限时任务时,该限时任务所对应的值最大的目标区间的预期值;

若所述值最大的目标区间的预期值超过第一阈值,则不处理该限时任务(一般值最大的目标区间的预期值也会是最大的;若某个目标区间的预期值超过第一阈值,则说明在该目标区间对应的时间内需要处理的任务量是超过系统或机器处理能力的,从而会造成任务处理问题);和/或,

确定若处理该限时任务时,该限时任务所对应的各个目标区间的预期值;

若该限时任务所对应的各个目标区间的预期值均不超过第一阈值,则处理该限时任务(若各个目标区间的预期值均不超过第一阈值,则说明即时确定该限时任务,在该限时任务限定起终时间区间内需要处理的任务量也不超过系统或机器处理能力)。

在本实施例中,子时间区间的值为子时间区间所对应的已被确定处理的限时任务数,或,根据子时间区间对应的已被确定处理的限时任务数确定子时间区间的值,例如可以建立限时任务数与值的对应关系。

在本实施例中,对于一个限时任务来说,在前述的初始时间区间的线段树分割过程中,可以每确定一个子时间区间就确定该子时间区间的值,也可以当该限时任务的组合确定后,再确定各个子时间区间的值,特别的,可以仅确定组合内的子时间区间的值。

s103:若确定处理,则处理该限时任务,并更新包含至少一个目标区间的子时间区间的值。

对于一个限时任务,若确定对其进行处理,则处理该限时任务,并更新“包含该限时任务对应的任一目标区间”的子时间区间的值。其中,对于任一目标区间,该目标区间本身属于包含该目标区间的子时间区间。

沿用上例,【10,20】对应的组合中的子时间区间为【10】、【11,12】、【13,15】、【16,19】、【20】,由于这些子时间区间对应的限时任务数发生了变化,包含该组合中至少一个目标区间的子时间区间包括【10】、【9,10】、【11,12】、【9,12】、【13,15】、【9,15】、【1、15】、【16,19】、【20】、【20、21】、【20、23】、【16、23】、【16,30】、【1,30】,故需要对这些子时间区间的值进行更新,更新的标准同前述的值确定标准。可见,利用线段树结构可以方便地确定包含至少一个目标区间的子时间区间,这些子时间区间就包含在根据限定起终时间区间和初始时间区间来确定需要分割出的节点中。

对于一个限时任务,若确定不对其进行处理,则不需要更新子时间区间的值。

当出现新的限时任务时,则可以针对新的限时任务进行上述过程。当然,若新出现的限时任务的限定起终时间与已出现过的限时任务的限定起终时间相同或相近或具有某种关系,则可以利用之前的分割结果,但子时间区间的值是最近一次确定对限时任务进行处理后的更新后的值。

在本实施例中,将限时任务的限定起终时间区间对应到一个或多个目标区间,根据这一个或多个目标区间就可以确定是否对限时任务进行处理,这一个或多个目标区间并不需要对应所有的已有限时任务,也不需要覆盖初始时间区间中的每一个单位时间,从而利用目标区间对限时任务进行管理,能够有效降低性能开销,提高限时任务处理效率。由于采用线段树方式来划分子时间区间,利用线段树的结构,不需要确定所有的节点,仅需要根据限定起终时间区间和初始时间区间来确定需要的节点,处理效率更高;利用线段树的结构,当确定处理限时任务时,可以方便地确定包含至少一个目标区间的子时间区间并修改或更新或统计其值,也就相当于实现了对所有线段树节点的值的修改或统计,进一步提高限时任务处理效率。由于线段树是平衡二叉树遍历过程,故其查询效率基本上是o(logn)的(n为初始时间区间的单位时间数,比如【0,30】中n为30),查询效率和更新效率更高。

如图5所示,本说明书第三个实施例提供了限时任务处理系统,具体的,限时任务处理系统根据线段树由初始时间区间确定一个或多个子时间区间;限时任务处理系统对于任一限时任务,确定该限时任务对应的子时间区间组合;其中,所述子时间区间组合满足:所述组合中的子时间区间叠加得到的连续时间区间的起终时间与该限时任务限定的起终时间相同;限时任务处理系统将所述组合中的子时间区间作为该限时任务对应的目标区间,根据各个目标区间的值确定是否处理该限时任务;若是,则限时任务处理系统处理该限时任务,并更新包含至少一个目标区间的子时间区间的值。

在本实施例中,采用线段树方式将初始区间划分为子时间区间,根据限时任务限定的起终时间确定对应的目标区间,根据目标区间的值来确定是否对限时任务进行处理,从而将限时任务转化为对应的一个或多个目标区间,利用目标区间即可对限时任务进行管理,有效降低性能开销,提高限时任务处理效率。由于采用线段树方式来划分子时间区间,可以方便的对子时间区间的值进行修改或统计,从而更加有利于确定目标区间的值,进一步提高限时任务处理效率。

从程序角度而言,上述流程的执行主体可以为计算机或者服务器或者相应的限时任务处理系统等。另外,也可以由第三方应用客户端协助所述执行主体执行上述流程。

图6是本说明书第四个实施例中的限时任务处理方法的流程示意图,该限时任务处理方法包括:

s201:根据线段树由初始时间区间确定一个或多个子时间区间。

本实施例中的线段树使用方式同第二个实施例。本步骤意味着,在一开始可以先将初始时间区间按照线段树进行分割,无论是否有限时任务。在分割时可以对初始时间区间进行完整分割,即得到完整分割结果,也可以分到某一层或得到某些特定子时间区间时停止。仍以【1,30】为例,本步骤中,可以先对其进行分割,得到图3所示的完整分割结果。

s202:对于任一限时任务,确定该限时任务对应的子时间区间组合;其中,所述子时间区间组合满足:所述组合中的子时间区间叠加得到的连续时间区间的起终时间与该限时任务限定的起终时间相同。

在本实施例中,可以按照第二个实施例的方式来确定限时任务对应的组合,只不过第二个实施例中的某些或全部孩子节点都已经在s201中分割出来了。下面介绍两种已对初始时间区间进行完整分割的情况下,确定限时任务对应的组合的方式(本实施例不限于以下方式):

2.1、s2021:在完整分割结果的最下层中,确定所有在限时任务的限定起终时间区间内的节点;

s2022:若上述选中的节点中,对于任一对相邻的节点,若该对节点具有共同父节点,则使用这个父节点代替该对节点。这样,本层最多剩下两个节点。实际上,若最下层最左侧被选中的节点是它父节点的右子树,那么这个节点会被剩下;若最下层最右侧被选中的节点是它的父节点的左子树,那么这个节点会被剩下;最下层除这两种情况之外的被选中节点都会被父节点取代。

s2023:对最下层作上述处理后,继续对上一层进行上述处理过程,直至某层中被选中的节点没有共同父节点的情况。

s2024:上述过程所有被选中过的节点中,除去被代替的节点,剩余的节点即为限时任务对应的组合。

如图7所示,仍以限定起终时间区间为【10,20】,初始时间区间为【1,30】为例,经过完整分割,得到【1】,【2】,……,【30】这些单位时间区间,在最下层中的单位时间区间为除去【15】和【30】之外的其他单位时间区间,其中在限时起终时间区间内的节点为【10】至【14】、【16】至【20】。

【11】和【12】相邻且具有共同的父节点【11,12】,则用【11,12】代替【11】和【12】;【13】和【14】相邻且具有共同父节点【13,14】,则用【13,14】代替【13】和【14】;【16】和【17】相邻且具有共同父节点【16,17】,则用【16,17】代替【16】和【17】;【18】和【19】相邻且具有共同父节点【18,19】,则用【18,19】代替【18】和【19】;【10】和【20】被剩下。

继续看【11,12】这一层,将所有在【10,20】内的节点选中,包括【11,12】、【13,14】、【15】、【16,17】、【18,19】;其中,【13、14】和【15】相邻且具有共同父节点【13,15】,则用【13,15】代替【13、14】和【15】;【16,17】和【18,19】相邻且具有共同父节点【16,19】,则用【16,19】代替【16,17】和【18,19】。

继续看【13,15】这一层,将所有在【10,20】内的节点选中,包括【13,15】和【16,19】;由于两者没有共同父节点,不需要继续向上选择。

图7中虚线框代表被选中的节点,实线框代表共同的父节点。上述过程中所有被选中过的节点包括【10】至【14】、【15】、【16】至【20】、【11,12】、【13,14】、【16,17】、【18,19】、【13,15】、【16,19】,其中【11】和【12】、【13】和【14】、【16】和【17】、【18】和【19】、【13、14】和【15】、【16,17】和【18,19】都被代替过;除去这些被代替的点,剩余的节点为【10】、【11,12】、【13,15】、【16,19】、【20】,这些节点形成【10,20】对应的组合,这与第二个实施例中的结果是相同的。

将本方式与第二个实施例中确定组合的方式比较,一般本方式具有速度快的特点,而第二个实施例中确定组合的方式需要分割出的孩子节点数比较少。

2.2、因为当限定时间区间属于初始时间区间时,初始时间区间的所有单位时间区间也包括了限定时间区间的所有单位时间区间。在对初始时间区间进行完整分割的情况下,可以把其中属于限定时间区间的单位时间区间选择出来,利用选择出的单位时间区间就可以形成限时任务对应的一种组合。

如图8所示,仍以限定起终时间区间为【10,20】,初始时间区间为【1,30】为例,【1,30】的单位时间区间包括【1】、【2】、……、【30】,将其中属于限定时间区间的单位时间区间选择出来,即将【10】、【11】、……、【20】挑选出来,选择出的单位时间区间就可以形成【10,20】对应的一种组合,图8中虚线框代表被选中的区间。这种方式确定的组合所包含的子时间区间数不一定是最少的,但具有确定组合速度快的特点。

可见,即使是采用线段树的方式,确定限时任务对应的组合的方式也是可以多种多样的。

s203:将所述组合中的子时间区间作为该限时任务对应的目标区间,根据各个目标区间的值确定是否处理该限时任务。

同s102。

s204:若确定处理,则处理该限时任务,并更新包含至少一个目标区间的子时间区间的值。

同s103。

本实施例除了具有第二个实施例的有益效果外,还公开了不同于第二个实施例的用于确定限时任务对应的组合的方式,且公开的方式具有速度快的特点。

在第一或第二或第三或第四个实施例中,所述的“限时任务”可以是银行保函任务。银行保函是外部机构凭借在银行的信用,由银行替机构向受益人出具的保证机构履行特定责任和义务的担保书,如果机构不能履行保函规定的责任和义务,收益人就可以凭借保函直接向银行索赔。银行保函一般具有生效日期和到期日期,在生效日期和到期日期内,银行需要执行相应的责任和义务。银行保函的生效日期可以作为限定起始时间,到期日期可以作为限定终止时间,生效日期与到期日期形成的区间可以作为限定起终时间区间,因而可以将银行保函作为限时任务。这种情况下,子时间区间的值可以为子时间区间对应的已确定接受的银行保函的总额度。比如若某个子时间区间是【1,3】,已确定接受的银行保函有两项,每一项的额度是1亿元,且该子时间区间均属于这两项银行保函的目标区间,则该子时间区间的值可以是2,单位为亿元。

一般情况下,银行具有一个保函额度阈值,单位时间内的银行保函额度不能超过该阈值,则可以将该阈值作为第一阈值。假设有一项新的额度为3亿元银行保函,并确定该银行保函对应的目标区间中包括【1,3】,则对于【1,3】来说,假设确定处理该银行保函(即接受该银行保函),则【1,3】(以及【1,3】对应的单位时间)对应的预期值为5,单位为亿元,已经超过第一阈值,故不能接受该银行保函;若该银行保函的额度为1亿元,则【1,3】(以及【1,3】对应的单位时间)对应的预期值为3,单位为亿元,没有超过第一阈值,故可以接受该银行保函。

对应于第一和第二个实施例,如图9所示,本说明书第五个实施例提供了一种限时任务处理装置,包括:

区间确定模块,用于对于任一限时任务,根据线段树由初始时间区间确定一个或多个子时间区间,直至至少出现该限时任务对应的子时间区间组合;其中,所述子时间区间组合满足:所述组合中的子时间区间叠加得到的连续时间区间的起终时间与该限时任务限定的起终时间相同;

处理判断模块,用于将所述组合中的子时间区间作为该限时任务对应的目标区间,根据各个目标区间的值确定是否处理该限时任务;

处理更新模块,用于若所述处理判断模块确定处理该限时任务,则处理该限时任务,并更新包含至少一个目标区间的子时间区间的值。

可选的,根据线段树由初始时间区间确定一个或多个子时间区间,直至至少出现该限时任务对应的子时间区间组合包括:

根据线段树对所述初始时间区间进行分割,其中初始时间区间作为第一层节点;

自第一层节点开始,每确定一层节点,则确定与该层节点对应的由所述限定起终区间分割出的同层节点,并根据由所述限定起终区间分割出的同层对应节点确定是否继续下一层线段树分割;

当由初始时间区间得到的某节点与由限定起终时间区间得到的同层对应节点相同时,则不需再对该节点进行分割;

将每对相同节点中的一个挑选出来,挑选出来的这些节点形成限时任务对应的组合。

可选的,根据由所述限定起终区间分割出的同层对应节点确定是否继续下一层线段树分割包括:

将由初始时间区间得到的节点记为第一节点,将由限定起终时间区间得到的节点记为第二节点;

若第一节点和第二节点的起终时间分别相同,则不对所述第一节点进行下一层分割;

若第二节点的限定终止时间小于等于(第一节点起始时间+第一节点终止时间)/2,则将第一节点分割出左孩子节点【第一节点起始时间,(第一节点起始时间+第一节点终止时间)/2】;

若第二节点的限定开始时间大于(第一节点起始时间+第一节点终止时间)/2,则将第一节点分割出右孩子节点【(第一节点起始时间+第一节点终止时间)/2+1,第一节点终止时间】;

若第二节点的限定开始时间小于等于(第一节点起始时间+第一节点终止时间)/2,限定终止时间大于(第一节点起始时间+第一节点终止时间)/2,则将第一节点分割出上述的左孩子节点和右孩子节点;将第二节点分割成【第二节点起始时间,(第一节点起始时间+第一节点终止时间)/2】和【(第一节点起始时间+第一节点终止时间)/2+1,限定终止时间】。

可选的,根据各个目标区间的值确定是否处理该限时任务包括:

若至少有一个该限时任务所对应的目标区间的值达到第一阈值,则不处理该限时任务;和/或,

确定该限时任务所对应的值最大的目标区间,若所述值最大的目标区间的值达到第一阈值,则不处理该限时任务;和/或,

确定若处理该限时任务时,该限时任务所对应的各个目标区间的预期值;

若至少有一个该限时任务所对应的目标区间的预期值超过第一阈值,则不处理该限时任务;和/或,

确定若处理该限时任务时,该限时任务所对应的各个目标区间的预期值;

确定该限时任务所对应的预期值最大的目标区间,若所述预期值最大的目标区间的预期值超过第一阈值,则不处理该限时任务;和/或,

确定若处理该限时任务时,该限时任务所对应的值最大的目标区间的预期值;

若所述值最大的目标区间的预期值超过第一阈值,则不处理该限时任务;和/或,

确定若处理该限时任务时,该限时任务所对应的各个目标区间的预期值;

若该限时任务所对应的各个目标区间的预期值均不超过第一阈值,则处理该限时任务。

可选的,子时间区间的值为子时间区间所对应的已被确定处理的限时任务数;或,

根据子时间区间对应的已被确定处理的限时任务数确定子时间区间的值。

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

值确定模块,用于在确定所述子时间区间后,确定所述子时间区间的值;或,用于在确定所述子时间区间组合后,确定各个目标区间的值;或,用于在确定所述子时间区间组合后,确定各个子时间区间的值。

可选的,对于任一目标区间,该目标区间本身属于包含该目标区间的子时间区间。

可选的,若所述处理判断模块确定不处理该限时任务,则所述处理更新模块不更新子时间区间的值。

可选的,所述处理判断模块还用于:对于任一限时任务,若该限时任务所限定的起终时间不全部属于所述初始时间区间,则确定不处理该限时任务。

可选的,所述限时任务为银行保函任务。

对应于第三和第四个实施例,如图11所示,本说明书第六个实施例提供了一种限时任务处理装置,包括:

区间确定模块,用于根据线段树由初始时间区间确定一个或多个子时间区间;

组合确定模块,用于对于任一限时任务,确定该限时任务对应的子时间区间组合;其中,所述子时间区间组合满足:所述组合中的子时间区间叠加得到的连续时间区间的起终时间与该限时任务限定的起终时间相同;

处理判断模块,用于将所述组合中的子时间区间作为该限时任务对应的目标区间,根据各个目标区间的值确定是否处理该限时任务;

处理更新模块,用于若所述处理判断模块确定处理该限时任务,则处理该限时任务,并更新包含至少一个目标区间的子时间区间的值。

本说明书第七个实施例提供了一种限时任务处理设备,包括:

至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,

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

对于任一限时任务,根据线段树由初始时间区间确定一个或多个子时间区间,直至至少出现该限时任务对应的子时间区间组合;其中,所述子时间区间组合满足:所述组合中的子时间区间叠加得到的连续时间区间的起终时间与该限时任务限定的起终时间相同;

将所述组合中的子时间区间作为该限时任务对应的目标区间,根据各个目标区间的值确定是否处理该限时任务;

若是,则处理该限时任务,并更新包含至少一个目标区间的子时间区间的值。

本说明书第八个实施例提供了一种限时任务处理设备,包括:

至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,

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

根据线段树由初始时间区间确定一个或多个子时间区间;

对于任一限时任务,确定该限时任务对应的子时间区间组合;其中,所述子时间区间组合满足:所述组合中的子时间区间叠加得到的连续时间区间的起终时间与该限时任务限定的起终时间相同;

将所述组合中的子时间区间作为该限时任务对应的目标区间,根据各个目标区间的值确定是否处理该限时任务;

若是,则处理该限时任务,并更新包含至少一个目标区间的子时间区间的值。

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

对于任一限时任务,根据线段树由初始时间区间确定一个或多个子时间区间,直至至少出现该限时任务对应的子时间区间组合;其中,所述子时间区间组合满足:所述组合中的子时间区间叠加得到的连续时间区间的起终时间与该限时任务限定的起终时间相同;

将所述组合中的子时间区间作为该限时任务对应的目标区间,根据各个目标区间的值确定是否处理该限时任务;

若是,则处理该限时任务,并更新包含至少一个目标区间的子时间区间的值。

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

根据线段树由初始时间区间确定一个或多个子时间区间;

对于任一限时任务,确定该限时任务对应的子时间区间组合;其中,所述子时间区间组合满足:所述组合中的子时间区间叠加得到的连续时间区间的起终时间与该限时任务限定的起终时间相同;

将所述组合中的子时间区间作为该限时任务对应的目标区间,根据各个目标区间的值确定是否处理该限时任务;

若是,则处理该限时任务,并更新包含至少一个目标区间的子时间区间的值。

上述各实施例可以结合使用。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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