一种任务调度方法及系统技术方案

技术编号:13832116 阅读:37 留言:0更新日期:2016-10-14 11:36
本发明专利技术实施例提供一种任务调度方法及系统,该方法包括:启动任务管理器,以初始化任务队列;任务队列基于延时队列实现,任务队列中的任务仅在对应延期时间到达时才能从任务队列中调取;任务管理器启动任务扫描器;任务扫描器循环调用任务管理器提供的从任务队列中获取到达延期时间的任务的接口,从任务队列中获取到达延期时间的任务,并将获取的任务交给任务执行器,直至任务管理器的状态变更为停止;任务执行器通过工作线程执行所述任务,并根据所述任务重复执行的间隔时间,生成新的任务,以通过任务管理器提供的添加任务到任务队列的接口,添加该新的任务到任务队列中。本发明专利技术实施例可达到以简单的配置实现任务调度,并降低资源占用的目的。

【技术实现步骤摘要】

本专利技术涉及数据处理
,更具体地说,涉及一种任务调度方法及系统
技术介绍
目前大部分应用系统都有重复执行某些任务的需求,因此就需要采用任务调度的方式间隔调起这些任务,并重复的执行这些任务,以达成该需求。目前的任务调度方式主要是基于Quartz开源框架实现(Quartz是一个完全由java编写的开源作业调度框架),然而采用Quartz开源框架实现任务调度需要引入第三方的库,这使得任务调度的配置较为复杂,且占用资源较多;因此如何以简单的配置实现任务调度,并降低资源占用,成为了本领域技术人员需要考虑的问题。
技术实现思路
有鉴于此,本专利技术实施例提供一种任务调度方法及系统,达到以简单的配置实现任务调度,并降低资源占用的目的。为实现上述目的,本专利技术实施例提供如下技术方案:一种任务调度方法,包括:启动任务管理器,以初始化任务队列;所述任务队列基于延时队列实现,所述任务队列集合有一组延时类型的任务,所述任务队列中的任务仅在对应延期时间到达时才能从所述任务队列中调取;任务管理器启动任务扫描器;任务扫描器循环调用任务管理器提供的从任务队列中获取到达延期时间的任务的接口,从任务队列中获取到达延期时间的任务,并将获取的所述任务交给任务执行器,直至任务管理器的状态变更为停止;任务执行器通过工作线程执行所述任务,并根据所述任务重复执行的间隔时间,生成新的任务,以通过任务管理器提供的添加任务到任务队列的接口,添加该新的任务到任务队列中,以实现需重复执行的任务的间隔重复运行。可选的,所述方法还包括:任务执行器控制工作线程的数量,以控制同时运行的任务数。可选的,任务执行器执行任务的入口是任务执行类的run方法,执行run方法以顺序调用execute方法和afterExcuter方法;其中,execute方法实现任务内容的执行,由任务实现类实现;afterExcuter方法实现添加新的任务到任务队列中,由上层类实现。可选的,所述方法还包括:任务扫描器扫描到任务发现器时,调度任务发现器;通过任务发现器将任务发现器在构建时从配置数据中获取并维护的数据最后维护时间,与最新的配置数据中的数据最后维护时间进行比对;如果比对不一致,获取比对不一致对应的新变更任务;构建新变更任务并通过任务管理器提供的添加任务到任务队列的接口,将新变更任务添加到任务队列中。可选的,所述方法还包括:通过任务管理器管理任务队列、启动任务扫描器、停止任务扫描器。本专利技术实施例还提供一种任务调度系统,包括:任务管理器,任务队列,任务扫描器,和任务执行器;其中,所述任务管理器,用于提供添加任务到任务队列的接口,从任务队列中获取到达延期时间的任务的接口;且所述任务队列随任务管理器的启动而初始化;所述任务队列基于延时队列实现,且用于集合一组延时类型的任务,所述任务队列中的任务仅在对应延期时间到达时才能从所述任务队列中调取;所述任务扫描器,用于循环调用任务管理器提供的从任务队列中获取到达延期时间的任务的接口,从任务队列中获取到达延期时间的任务,并将获取的所述任务交给任务执行器,直至任务管理器的状态变更为停止;所述任务执行器,用于通过工作线程执行所述任务,并根据所述任务重复执行的间隔时间,生成新的任务,以通过任务管理器提供的添加任务到任务队列的接口,添加该新的任务到任务队列中,以实现需重复执行的任务的间隔重复运行。可选的,所述任务执行器还可用于,控制工作线程的数量,以控制同时运行的任务数。可选的,任务执行器执行任务的入口是任务执行类的run方法,执行run方法以顺序调用execute方法和afterExcuter方法;其中,execute方法实现任务内容的执行,由任务实现类实现;afterExcuter方法实现添加新的任务到任务队列中,由上层类实现。可选的,所述系统还包括:任务发现器,用于在被任务扫描器扫描到时,受任务扫描器调度执行如下内容:将任务发现器在构建时从配置数据中获取并维护的数据最后维护时间,与最新的配置数据中的数据最后维护时间进行比对,如果比对不一致,获取比对不一致对应的新变更任务,构建新变更任务并通过任务管理器提供的添加任务到任务队列的接口,将新变更任务添加到任务队列中。可选的,所述任务管理器还可用于,管理任务队列、启动任务扫描器、停止任务扫描器。基于上述技术方案,本专利技术实施例提供的任务调度方法包括:启动任务管理器,以初始化任务队列;所述任务队列基于延时队列实现,所述任务队列集合有一组延时类型的任务,所述任务队列中的任务仅在对应延期时间到达时才能从所述任务队列中调取;任务管理器启动任务扫描器;任务扫描器循环调用任务管理器提供的从任务队列中获取到达延期时间的任务的接口,从任务队列中获取到达延期时间的任务,并将获取的所述任务交给任务执行器,直至任务管理器的状态变更为停止;任务执行器通过工作线程执行所述任务,并根据所述任务重复执行的间隔时间,生成新的的任务,以通过任务管理器提供的添加任务到任务队列的接口,添加该新的任务到任务队列中,以实现需重复执行的任务的间隔重复运行。可以看出,本专利技术实施例在实现任务调度时,不需要在运行时使用专用的第三方的库,即不需要采用专用的数据结构存储配置信息,而是可基于任务信息的自描述,利用基于延时队列
实现的任务队列及任务扫描器和任务执行器实现任务的重复调度执行,使得任务调度的配置较为角度,且可使用较少的资源实现应用系统中任务重复调度执行的需求,而节约的资源可以提高应用系统的负载能力,本专利技术实施例可达到以简单的配置实现任务调度,并降低资源占用的目的。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本专利技术实施例提供的任务调度系统的结构框图;图2为本专利技术实施例提供的任务调度方法的流程图;图3为本专利技术实施例提供的任务调度方法的另一流程图;图4为任务管理器的启动流程图;图5为任务扫描器的工作流程图;图6为任务执行器的工作流程图;图7为本专利技术实施例提供的任务调度系统的另一结构框图;图8为任务发现器的工作流程图;图9为本专利技术实施例提供的任务调度系统的组件示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。图1为本专利技术实施例提供的任务调度系统的结构框图,参照图1,本专利技术实施例提供的任务调度系统可以包括:任务管理器10,任务队列20,任务扫描器30,和任务执行器40;在本专利技术实施例中,任务管理器主要用于管理任务队列、启动任务扫描
器、及停止任务扫描器等功能;任务管理器对应有一任务队列,并可提供添加任务到任务队列,从任务队列获取延期任务等操作的接口;同时,任务管理器启动时,可初始化任务队列。在本专利技术实施例中,任务队列是一组待执行任务的集合,而任务可认为是可执行的业务逻辑单元,任务可包含如下信息本文档来自技高网
...

【技术保护点】
一种任务调度方法,其特征在于,包括:启动任务管理器,以初始化任务队列;所述任务队列基于延时队列实现,所述任务队列集合有一组延时类型的任务,所述任务队列中的任务仅在对应延期时间到达时才能从所述任务队列中调取;任务管理器启动任务扫描器;任务扫描器循环调用任务管理器提供的从任务队列中获取到达延期时间的任务的接口,从任务队列中获取到达延期时间的任务,并将获取的所述任务交给任务执行器,直至任务管理器的状态变更为停止;任务执行器通过工作线程执行所述任务,并根据所述任务重复执行的间隔时间,生成新的任务,以通过任务管理器提供的添加任务到任务队列的接口,添加该新的任务到任务队列中,以实现需重复执行的任务的间隔重复运行。

【技术特征摘要】
1.一种任务调度方法,其特征在于,包括:启动任务管理器,以初始化任务队列;所述任务队列基于延时队列实现,所述任务队列集合有一组延时类型的任务,所述任务队列中的任务仅在对应延期时间到达时才能从所述任务队列中调取;任务管理器启动任务扫描器;任务扫描器循环调用任务管理器提供的从任务队列中获取到达延期时间的任务的接口,从任务队列中获取到达延期时间的任务,并将获取的所述任务交给任务执行器,直至任务管理器的状态变更为停止;任务执行器通过工作线程执行所述任务,并根据所述任务重复执行的间隔时间,生成新的任务,以通过任务管理器提供的添加任务到任务队列的接口,添加该新的任务到任务队列中,以实现需重复执行的任务的间隔重复运行。2.根据权利要求1所述的任务调度方法,其特征在于,还包括:任务执行器控制工作线程的数量,以控制同时运行的任务数。3.根据权利要求1所述的任务调度方法,其特征在于,任务执行器执行任务的入口是任务执行类的run方法,执行run方法以顺序调用execute方法和afterExcuter方法;其中,execute方法实现任务内容的执行,由任务实现类实现;afterExcuter方法实现添加新的任务到任务队列中,由上层类实现。4.根据权利要求1所述的任务调度方法,其特征在于,还包括:任务扫描器扫描到任务发现器时,调度任务发现器;通过任务发现器将任务发现器在构建时从配置数据中获取并维护的数据最后维护时间,与最新的配置数据中的数据最后维护时间进行比对;如果比对不一致,获取比对不一致对应的新变更任务;构建新变更任务并通过任务管理器提供的添加任务到任务队列的接口,将新变更任务添加到任务队列中。5.根据权利要求1所述的任务调度方法,其特征在于,还包括:通过任务管理器管理任务队列、启动任务扫描器、停止任务扫描器。6.一种任务调度系统,其特征在于,包括:任务管理器,任务队列,任务扫描器,和任务...

【专利技术属性】
技术研发人员:冯志强吴旭春杨鹏盛一民杜念冰
申请(专利权)人:中国农业银行股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1