定时任务管理方法和装置与流程

文档序号:11864483阅读:208来源:国知局
定时任务管理方法和装置与流程

本发明涉及计算机技术领域,尤其涉及一种定时任务管理方法和装置。



背景技术:

在一个应用系统中,需要定时周期性执行的任务会非常多,如果对每一个任务都使用一个定时器,那么会浪费大量的系统资源。因此通常会使用时间轮来管理定时任务。该时间轮可以由N个时间槽组成,每个时间槽对应一个单位时间,每个时间槽中可以设置一个定时任务,该时间轮的指针通常指向当前执行的定时任务。因此,如果指针指向第n个时间槽,则定时t个单位时间的定时任务放置在时间轮的位置为:第(t+n)%N个时间槽,其中%表示求余数运算。但是,现有技术中每个定时任务都是必须执行的,无法取消任务。



技术实现要素:

本发明的目的是提供一种定时任务管理方法和装置,用于解决时间轮中的定时任务无法取消的问题。

为了实现上述目的,本发明提供一种定时任务管理方法,所述方法包括:

当确定第一任务需要取消时,根据所述第一任务的标识确定所述第一任务在时间轮中的位置;所述时间轮中设置有N个任务,所述第一任务为所述N个任务中的任一任务;其中,N为正整数;

根据所述第一任务在所述时间轮中的位置将所述第一任务从所述时间轮中删除。

可选地,所述方法还包括:

当判定执行所述第一任务后对所述第一任务的操作对象不产生影响时,或者当判定执行所述第一任务对于所述第一任务的操作对象为无意义操作时,确定所述第一任务需要取消。

可选地,所述方法还包括:

当接收到取消所述第一任务的取消指令时,确定所述第一任务需要取消。

可选地,所述根据所述第一任务的标识确定所述第一任务在时间轮中的位置,包括:

根据所述第一任务的标识在预先设置的任务索引表中确定所述第一任务在所述时间轮中的位置;所述任务索引表中记录有所述时间轮中的每个任务的位置。

可选地,所述根据所述第一任务在所述时间轮中的位置将所述第一任务从所述时间轮中删除包括:

根据所述第一任务在所述时间轮中的位置在所述时间轮中找到所述第一任务;

在当前任务周期内将所述第一任务从所述时间轮中删除;

其中,从开始执行所述时间轮中的第一个任务至所述时间轮中的最后一个任务执行完毕为一个任务周期。

本发明还提供一种定时任务管理装置,所述装置包括:

位置确定模块,用于当确定第一任务需要取消时,根据所述第一任务的标识确定所述第一任务在时间轮中的位置;所述时间轮中设置有N个任务,所述第一任务为所述N个任务中的任一任务;其中,N为正整数;

任务取消模块,用于根据所述第一任务在所述时间轮中的位置将所述第一任务从所述时间轮中删除。

可选地,所述装置还包括:

任务判断模块,用于当判定执行所述第一任务后对所述第一任务的操作对象不产生影响时,或者当判定执行所述第一任务对于所述第一任务的操作对象为无意义操作时,确定所述第一任务需要取消。

可选地,所述装置还包括:

指令接收模块,用于当接收到取消所述第一任务的取消指令时,确定所述第一任务需要取消。

可选地,所述位置确定模块用于:

根据所述第一任务的标识在预先设置的任务索引表中确定所述第一任务在所述时间轮中的位置;所述任务索引表中记录有所述时间轮中的每个任务的位置。

可选地,所述任务取消模块包括:

任务查找子模块,用于根据所述第一任务在所述时间轮中的位置在所述时间轮中找到所述第一任务;

任务删除子模块,用于在当前任务周期内将所述第一任务从所述时间轮中删除;

其中,从开始执行所述时间轮中的第一个任务至所述时间轮中的最后一个任务执行完毕为一个任务周期。

本发明实施例通过上述技术方案,提供了一种时间轮中定时任务的取消机制,能够在确定某一任务需要取消时,将该任务从时间轮中删除,能够解决现有技术无法取消定任务的问题,从而能够取消需要取消的任务,能够节省系统资源。

本发明的其他特征和优点将在随后的具体实施方式部分予以详细说明。

附图说明

附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明,但并不构成对本发明的限制。在附图中:

图1是根据一示例性实施例示出的一种定时任务管理方法;

图2为根据一示例性实施例示出的一种时间轮的示意图;

图3是根据一示例性实施例示出的一种定时任务管理方法;

图4是根据一示例性实施例提供的一种定时任务管理装置框图;

图5是根据一示例性实施例提供的另一种定时任务管理装置框图;

图6是根据一示例性实施例提供的另一种定时任务管理装置框图;

图7是根据图4所示实施例示出的一种任务取消模块的框图。

具体实施方式

以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。

图1是根据一示例性实施例示出的一种定时任务管理方法,参见图1,该方法可以包括以下步骤。

步骤101,当确定第一任务需要取消时,根据第一任务的标识确定第一任务在时间轮中的位置;时间轮中设置有N个任务,第一任务为N个任务中的任一任务;其中,N为正整数。

其中,第一任务需要取消可以是由系统来判断,也可以是由用户来触发。第一任务的标识可以是第一任务的ID,对于每个任务而言,在任务创建时可以为每个任务都生成一个唯一的ID。

示例的,图2为根据一示例性实施例示出的一种时间轮的示意图,参见图2,该时间轮中包括N个时间槽,以及一个指针,N个时间槽可以设置N个任务,指针指向当前正在执行的任务所在的时间槽。

步骤102,根据第一任务在时间轮中的位置将第一任务从时间轮中删除。

其中,从开始执行所述时间轮中的第一个任务至所述时间轮中的最后一个任务执行完毕为一个任务周期,时间轮中的任务可以在每个周期都执行一次,因此示例的,这里的将第一任务从时间轮中删除可以理解为在当前任务周期内删除,在下一个周期中该第一任务可以从新添加回来,当然也可以是永久性删除。

综上,本发明实施例提供的定时任务管理方法,提供了一种时间轮中定时任务的取消机制,能够在确定某一任务需要取消时,将该任务从时间轮中删除,能够解决现有技术无法取消定任务的问题,从而能够取消需要取消的任务,能够节省系统资源。

图3是根据一示例性实施例示出的一种定时任务管理方法,参见图3,该方法可以包括以下步骤。

步骤201,判断是否有需要取消的任务。

当确定有第一任务需要取消时,进行步骤202,当没有需要取消的任务时继续执行步骤201。其中,如图2所示的时间轮,在该时间轮包括N个时间槽,每个时间槽中可以中可以设置一个任务,从而该时间轮中可以有N个任务,第一任务可以为这N个任务中的任一任务,N为正整数。

其中,判断是否有需要取消的任务可以由系统来执行,系统可以通过预设的策略判断某一任务是否需要取消,以第一任务为例,当判定执行所述第一任务后对所述第一任务的操作对象不产生影响时,或者当判定执行所述第一任务对于所述第一任务的操作对象为无意义操作时,确定所述第一任务需要取消。例如,第一任务为清理系统垃圾的任务,当系统检测到当前并不存在系统垃圾时,清理系统垃圾的操作就是无意义操作,因此可以确定该任务需要取消。或者,任务的取消也可以由用户触发,例如当用户进行取消第一任务的操作后,系统会接收到取消所述第一任务的取消指令,此时可以确定第一任务需要取消。

步骤202,根据第一任务的标识确定第一任务在时间轮中的位置。

示例的,可以在系统中预先建立好一个任务索引表,该索引表中记录有时间轮中的每个任务的位置,在本实施例中,每个任务的位置就是每个任务在时间轮中所在的时间槽。第一任务的标识可以是第一任务的ID,对于每个任务而言,在任务创建时可以为每个任务都生成一个唯一的ID。因此,可以根据第一任务的ID在该任务索引表中查找与第一任务的ID对应的表项,在查找到与第一任务的ID对应的表项就可以从该表项中获取第一任务在时间轮中所在的时间槽,其中该N个时间槽也可以分配唯一的ID,例如分别编号为时间槽1~N。

步骤203,根据第一任务在所述时间轮中的位置在时间轮中找到第一任务。其中,假设在步骤202中获取了该第一任务位于时间轮的时间槽5中,则可以找到该位于该时间槽5中的第一任务,并从中删除该第一任务。

步骤204,将第一任务从时间轮中删除。

其中,从开始执行时间轮中的第一个任务至时间轮中的最后一个任务执行完毕为一个任务周期。示例的,将第一任务从时间轮中删除可以是在当前任务周期内将第一任务从时间轮中删除,在下一个周期中该第一任务可以从新添加回来,当然也可以是永久性删除。

综上,本发明实施例提供的定时任务管理方法,提供了一种时间轮中定时任务的取消机制,能够在确定某一任务需要取消时,将该任务从时间轮中删除,能够解决现有技术无法取消定任务的问题,从而能够取消需要取消的任务,能够节省系统资源。

图4是根据一示例性实施例提供的一种定时任务管理装置框图,该装置400可以用于执行图1或图3所示的方法,参见图4,该装置400可以包括:

位置确定模块410,用于当确定第一任务需要取消时,根据所述第一任务的标识确定所述第一任务在时间轮中的位置;所述时间轮中设置有N个任务,所述第一任务为所述N个任务中的任一任务;其中,N为正整数;

任务取消模块420,用于根据所述第一任务在所述时间轮中的位置将所述第一任务从所述时间轮中删除。

可选的,图5是根据一示例性实施例提供的另一种定时任务管理装置框图,参见图5,该装置500还可以包括:

任务判断模块430,用于当判定执行所述第一任务后对所述第一任务的操作对象不产生影响时,或者当判定执行所述第一任务对于所述第一任务的操作对象为无意义操作时,确定所述第一任务需要取消。

可选的,图6是根据一示例性实施例提供的另一种定时任务管理装置框图,参见图6,该装置400还可以包括:

指令接收模块440,用于当接收到取消所述第一任务的取消指令时,确定所述第一任务需要取消。

可选的,所述位置确定模块410可以用于:

根据所述第一任务的标识在预先设置的任务索引表中确定所述第一任务在所述时间轮中的位置;所述任务索引表中记录有所述时间轮中的每个任务的位置。

可选的,图7是根据图4所示实施例示出的一种任务取消模块的框图,参见图7,所述任务取消模块420可以包括:

任务查找子模块421,用于根据所述第一任务在所述时间轮中的位置在所述时间轮中找到所述第一任务;

任务删除子模块422,用于在当前任务周期内将所述第一任务从所述时间轮中删除;

其中,从开始执行所述时间轮中的第一个任务至所述时间轮中的最后一个任务执行完毕为一个任务周期。

综上,本发明实施例提供的定时任务管理装置,提供了一种时间轮中定时任务的取消机制,能够在确定某一任务需要取消时,将该任务从时间轮中删除,能够解决现有技术无法取消定任务的问题,从而能够取消需要取消的任务,能够节省系统资源。

以上结合附图详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种简单变型,这些简单变型均属于本发明的保护范围。

另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。

此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明的思想,其同样应当视为本发明所公开的内容。

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