本公开是关于一种任务调度方法和系统,其中方法包括:启动定时器对第一任务组的计时,该第一任务组包括:定时时间间隔相同的至少一个定时任务;当第一任务组对应的定时时间间隔到达时,通知所述第一任务组中的各个定时任务执行。本公开降低了较多的定时任务对系统资源的过多消耗。
【技术实现步骤摘要】
任务调度方法和系统
本公开涉及计算机技术,尤其涉及一种任务调度方法和系统。
技术介绍
在软件开发中,经常会遇到一些场景,需要使用到定时器timer,比如,数据定时刷新、定时查询某个事件状态等,这些定时执行的任务可以称为定时任务。在相关技术中,通常需要为每个定时任务分别设置一个对应的timer,并且,timer会在时间到达时通知对应的任务去执行,比如,定时任务需要每隔2分钟执行一次,那么timer就会计时,并在每隔2分钟时通知任务执行。这种timer启动为任务的计时也可以称为任务调度。但是上述的任务调度方式,对系统的资源消耗较大,可能使得系统运行较慢。
技术实现思路
为克服相关技术中存在的问题,本公开提供一种任务调度方法和系统,以降低较多的定时任务对系统资源的过多消耗。根据本公开实施例的第一方面,提供一种任务调度方法,包括:启动定时器对第一任务组的计时,所述第一任务组包括:定时时间间隔相同的至少一个定时任务;当所述第一任务组对应的定时时间间隔到达时,通知所述第一任务组中的各个定时任务执行。根据本公开实施例的第二方面,提供一种任务调度系统,包括:计时模块,用于启动定时器对第一任务组的计时,所述第一任务组包括:定时时间间隔相同的至少一个定时任务;通知模块,用于当所述第一任务组对应的定时时间间隔到达时,通知所述第一任务组中的各个定时任务执行。本公开的实施例提供的技术方案可以包括以下有益效果:通过将定时任务分成定时任务组,并通过定时器启动对该定时任务组的定时,相对于分别对各个定时任务计时的方式,将降低较多的定时任务对系统资源的过多消耗。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。附图说明此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本专利技术的实施例,并与说明书一起用于解释本专利技术的原理。图1是根据一示例性实施例示出的定时任务分组示意图;图2是根据一示例性实施例示出的一种任务调度方法的流程图;图3是根据一示例性实施例示出的关联任务组示意图;图4是根据一示例性实施例示出的一种任务调度系统的结构图;图5是根据一示例性实施例示出的另一种任务调度系统的结构图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本专利技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本专利技术的一些方面相一致的装置和方法的例子。为了在定时任务较多时,避免对系统资源的过多消耗,提高系统的运行速度,本申请实施例提供了一种任务调度方法,该方法对定时任务采用了一种集中式的调度方式。参见图1的示例,假设有四个定时任务,定时任务是需要每隔一定时间执行的任务。例如,定时任务-1可以是数据刷新任务,每隔2分钟执行一次,即每隔2分钟就从数据服务器获取一次最新数据;定时任务-2可以是查询某个事件状态的任务,每隔1分钟执行一次,即每隔1分钟就查询一次事件状态是否发生变化;同理,还可以包括定时任务-3和定时任务-4,本实施例假设定时任务-3也是每隔2分钟执行一次,定时任务-4是每隔1分钟执行一次。如果将上述的“2分钟”、“1分钟”称为定时时间间隔,那么可以看到,定时任务-3和定时任务-1的定时时间间隔相同,定时任务-4和定时任务-2的定时时间间隔相同。如图1所示,可以将定时任务-3和定时任务-1归为一组,称为“任务组A”,将定时任务-4和定时任务-2归为一组,称为“任务组B”,而任务组A和任务组B可以都称为第一任务组。上述的各个第一任务组(任务组A和任务组B)都需要定时器timer进行定时,如图1中的示意,任务组A和任务组B可以共用一个timer(图1中的timer只是一个原理性的示意),该timer可以进行计时,在计时的过程中,当每隔1分钟到达时,可以通知任务组B中的各个定时任务执行;当每隔2分钟到达时,就通知任务组A中的各个定时任务执行。由上述可以看到,本申请的任务调度方法是执行图2所示的流程:在步骤201中,启动定时器对第一任务组的计时,所述第一任务组包括:定时时间间隔相同的至少一个定时任务。例如,第一任务组可以是图1中的任务组A,其中包括两个定时任务,即定时任务-1和定时任务-3。分在同一任务组中的定时任务,可以具有相同的定时时间间隔,比如,都是每隔2分钟执行一次。可选的,需要启动定时器计时的第一任务组的数量可以为多个,比如,在图1示例中,包括两个第一任务组,任务组A和任务组B,当然,还可以包括任务组C或任务组D等其他任务组。在步骤202中,当所述第一任务组对应的定时时间间隔到达时,通知所述第一任务组中的各个定时任务执行。例如,定时器为第一任务组进行计时,每隔2分钟时,就通知第一任务组中的各个定时任务启动执行。当第一任务组的数量为多个时,比如,图1所示例的两个第一任务组,任务组A和任务组B,这两个任务组的定时时间间隔不同,任务组A的定时时间间隔是2分钟,任务组B的定时时间间隔是1分钟,那么,定时器在计时的过程中,当到达各个第一任务组分别对应的定时时间间隔时,分别通知对应的第一任务组。比如,计时到达每隔1分钟时,就通知任务组B,到达每隔2分钟时,就通知任务组A。可选的,定时器在时间到达通知各个定时任务时,可以根据第一任务组中的各个定时任务的优先级标识,确定对各个定时任务的通知顺序。比如,有的任务可能会比较繁琐阻塞线程,导致后面的任务不能及时得到执行,那么可以设定此类任务的优先级较低,定时器就可以根据任务的优先级,对任务的执行进行排序,让高优先级的任务先执行,保证重要功能的顺利执行,则定时器可以先行通知高优先级的定时任务。可以看到,在本实施例的任务调度方法,对多个定时任务采用了集中式的调度方式,即由一个定时器集中为多个定时任务进行计时,相比于传统方式中的每个定时任务分别设置一个对应的定时器,定时器的设置数量减少,可以减少对系统资源的消耗,因此,即使运行了多个定时任务时,也不会大幅降低系统的运行速度。此外,这种对定时任务进行集中式的调度,还可以防止定时调度时的任务重复添加。在系统设计比较复杂时,多人协作难免会出现代码各种错误,可能会导致同一个任务多次开启执行,通过集中式的管理,每个任务具有唯一标识,重复添加相同的任务可以设定只执行一份任务。在另一例子中,定时器还可以同时启动对关联度比较高的一组定时任务的计时,并同时停止对该组定时任务的计时。比如,当用户打开某个页面时,该页面中包括多个要开始启动计时的定时任务,也就是说,这多个定时任务在同一个页面中,页面启动则这些任务要同时启动,当页面关闭该任务也要同时关闭。本实施例针对这种情况,可以将上述的多个任务分在“关联任务组”中,关联任务组中包括至少两个定时任务。示例性的,当检测到上述页面启动时,定时器timer可以同时启动对关联任务组中的所有定时任务的计时;当页面关闭时,timer可以同时停止对关联任务组中的所有定时任务的计时。需要说明的是,上述的页面打开,只是个示例,同时启动或同时停止的定时任务并不一定只是依据同一任务,也可以是其他关联因素使得这些定时任务需要同时启动或停止定时。而本实施例通过将这本文档来自技高网...

【技术保护点】
一种任务调度方法,其特征在于,包括:启动定时器对第一任务组的计时,所述第一任务组包括:定时时间间隔相同的至少一个定时任务;当所述第一任务组对应的定时时间间隔到达时,通知所述第一任务组中的各个定时任务执行。
【技术特征摘要】
1.一种任务调度方法,其特征在于,包括:启动定时器对第一任务组的计时,所述第一任务组包括:定时时间间隔相同的至少一个定时任务;当所述第一任务组对应的定时时间间隔到达时,通知所述第一任务组中的各个定时任务执行。2.根据权利要求1所述的方法,其特征在于,所述第一任务组的数量为至少一个;至少一个所述第一任务组之间的定时时间间隔不同;所述当第一任务组对应的定时时间间隔到达时,通知所述第一任务组中的各个定时任务执行,包括:所述定时器在计时的过程中,当到达各个第一任务组分别对应的定时时间间隔时,分别通知对应的第一任务组。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:同时启动对关联任务组中的所有定时任务的计时,所述关联任务组中包括:至少两个定时任务;同时停止对所述关联任务组中的所有定时任务的计时。4.根据权利要求3所述的方法,其特征在于,还包括:将所述关联任务组中的各个定时任务,根据所述定时任务的定时时间间隔,划分入对应所述定时时间间隔的第一任务组。5.根据权利要求1所述的方法,其特征在于,所述通知所述第一任务组中的各个定时任务执行,包括:根据所述第一任务组中的各个定时任务的优先级标识,确定对各个定时任务的通知顺...
【专利技术属性】
技术研发人员:孟铮,
申请(专利权)人:阿里巴巴集团控股有限公司,
类型:发明
国别省市:开曼群岛,KY
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。