一种分布式定时任务控制装置及方法制造方法及图纸

技术编号:8907016 阅读:448 留言:0更新日期:2013-07-11 04:41
本发明专利技术提出了一种分布式定时任务控制装置,包括:接收模块,用于接收定时任务Cron的指令;数据库模块,用于保存Cron记录,其中,每个所述Cron记录具有对应的当前状态信息;多个调度模块,用于分别根据调度时间表对数据库模块中的Cron记录进行调度,当Cron记录满足调度时间表之后,根据所述Cron记录对应的当前状态信息将Cron记录放置到执行队列中;执行模块,用于执行执行队列之中的Cron记录。本发明专利技术可以处理高并发的Cron任务,只与用户相关,使用者可以使用应用程序之外的URL作为定时任务的地址,更加灵活方便。本发明专利技术还提出了一种分布式定时任务控制方法。

【技术实现步骤摘要】
一种分布式定时任务控制装置及方法
本专利技术涉及云开发
,特别涉及一种分布式定时任务控制装置及方法。
技术介绍
Cron,计划任务,是任务在约定的时间执行已经计划好的工作。例如,可以在配置文件中约定每天早上4点将httpd服务器重新启动,每天晚上10点钟给某个邮箱发一封信,都是计划任务。在Linux系统中,计划任务一般是由cron承担,cron可以根据配置文件约定的时间来执行特定的任务。将cron设置为开机时自动启动。cron启动后,它会读取它的所有配置文件,如全局性配置文件/etc/crontab,以及每个用户的计划任务配置文件,然后cron会根据命令和执行时间来按时来调用度工作任务。cron可以在无需人工干预的情况下运行作业,但是缺点在于不提供任何形式的API,只能通过应用的配置文件来配置Cron任务,局限于应用内部使用,缺少了灵活性。
技术实现思路
本专利技术旨在至少在一定程度上解决上述技术问题之一或至少提供一种有用的商业选择。为此,本专利技术的第一个目的在于提出一种分布式定时任务控制装置,可以提供一种分布式的Cron处理系统,可以处理高并发的Cron任务,只与用户相关,使用者可以使用应用程序之外的URL作为定时任务的地址,更加灵活方便。本专利技术的第二个目的在于提出一种分布式定时任务控制方法。为达到上述目的,本专利技术第一方面的实施例提出了一种分布式定时任务控制装置,包括:接收模块,用于接收定时任务Cron的指令;数据库模块,用于保存Cron记录,其中,每个所述Cron记录具有对应的当前状态信息;多个调度模块,用于分别根据调度时间表对所述数据库模块中的Cron记录进行调度,当Cron记录满足所述调度时间表之后,根据所述Cron记录对应的当前状态信息将所述Cron记录放置到执行队列中;执行模块,用于执行所述执行队列之中的Cron记录。根据本专利技术实施例的分布式定时任务控制装置,提供了一种分布式的Cron装置,可以处理高并发的Cron任务,用户可以同时创建并运行多个Cron,提供了友好的SDK和HTTP接口,只与用户相关,不依赖于应用,使用者可以使用应用程序之外的URL作为定时任务的地址,更加灵活方便。在本专利技术的一个实施例中,每个所述Cron记录还具有对应的执行状态信息,所述执行模块根据所述执行状态信息执行所述执行队列之中的Cron记录。在本专利技术的一个实施例中,所述当前状态信息包括活跃状态、结束状态、删除状态、暂停状态和配额超限状态中的一种或多种。在本专利技术的一个实施例中,所述多个调度模块对处于活跃状态的Cron记录进行调度。在本专利技术的一个实施例中,其特征在于,所述执行状态信息包括就绪状态、调度状态和运行状态。在本专利技术的一个实施例中,当所述调度模块将Cron记录放置到所述执行队列中之后,将所述Cron记录的执行状态信息修改为调度状态。在本专利技术的一个实施例中,当所述Cron记录的执行状态信息为调度状态或运行状态时,所述执行模块不执行所述Cron记录。在本专利技术的一个实施例中,所述调度模块还用于在Cron记录超时之后,将所述Cron记录丢弃。在本专利技术的一个实施例中,所述数据库包括多个子数据库,且每个子数据库包括多个数据列表。本专利技术第二方面实施例提出了一种分布式定时任务控制方法,包括以下步骤:接收定时任务Cron的指令并保存,其中每个所述Cron记录具有对应的当前状态信息;根据调度时间表对数据库模块中的Cron记录进行调度;当所述Cron记录满足所述调度时间表时,根据所述Cron记录对应的当前状态信息将所述Cron记录放置到执行队列中;执行所述执行队列之中的Cron记录。根据本专利技术实施例的分布式定时任务控制方法提供了一种分布式的Cron实现方案,可以处理高并发的Cron任务,用户可以同时创建并运行多个Cron,提供了友好的SDK和HTTP接口,只与用户相关,不依赖于应用,使用者可以使用应用程序之外的URL作为定时任务的地址,更加灵活方便。本专利技术附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本专利技术的实践了解到。附图说明本专利技术所述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:图1为根据本专利技术一个实施例的分布式定时任务控制装置的结构示意图;图2a为根据本专利技术一个实施例的调度模块的抓取的示意图;图2b为根据本专利技术一个实施例的调度模块发送任务至执行队列的示意图;图3为根据本专利技术一个实施例的调度模块的内部结构示意图;图4为根据本专利技术一个实施例的恢复Cron记录的流程图;图5为根据本专利技术一个实施例的正常调度Cron记录的流程图;图6为根据本专利技术一个实施例的调度超时Cron记录的流程图;图7为根据本专利技术一个实施例的调度超时到下一执行时刻Cron记录的流程图;图8为根据本专利技术一个实施例的处理运行超时Cron记录的流程图;图9为根据本专利技术一个实施例的执行执行队列中Cron记录的流程图;和图10为根据本专利技术一个实施例的分布式定时任务控制方法的流程图。具体实施方式下面详细描述本专利技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本专利技术,而不能解释为对本专利技术的限制。如图1所示,本专利技术第一方面实施例提出的分布式定时任务控制装置包括接收模块110、数据库模块120、多个调度模块130和执行模块140。其中,接收模块110用于接收定时任务Cron的指令;数据库模块120用于保存Cron记录,其中,每个Cron记录具有对应的当前状态信息;多个调度模块130用于分别根据调度时间表对数据库模块120中的Cron记录进行调度,当Cron记录满足调度时间表之后,根据Cron记录对应的当前状态信息将Cron记录放置到执行队列中;执行模块140用于执行执行队列之中的Cron记录。其中,当前状态信息包括活跃状态、结束状态、删除状态、暂停状态和配额超限状态中的一种或多种。执行状态信息包括就绪状态、调度状态和运行状态。根据执行状态信息执行执行队列之中的Cron记录。调度状态,如task_status=DISPATCH,表示Cron记录已经被推送至执行队列,但是还没有被执行。运行状态,如task_status=RUNNING,表示Cron记录已经被从执行队列取走并开始执行。其中,只有处于活跃状态下的当前状态信息是可被调度的。数据库包括多个子数据库,且每个子数据库包括多个数据列表。在本专利技术的一个实施例中,多个调度模块130对处于活跃状态的Cron记录进行调度。当调度模块130将Cron记录放置到执行队列中之后,将Cron记录的执行状态信息修改为调度状态。当Cron记录的执行状态信息为调度状态或运行状态时,执行模块140不执行Cron记录。调度模块130还用于在Cron记录超时之后,将Cron记录丢弃。每个Cron记录还具有对应的执行状态信息,执行模块140根据执行状态信息执行执行队列之中的Cron记录。下面以一个具体的实施例对根据本专利技术实施例的分布式定时任务控制装置进行说明,可以理解的是,下述说明仅出于示例目的,本专利技术的实施例不限于此。接收模块110属于对外接口,多个调度模块130和执本文档来自技高网...
一种分布式定时任务控制装置及方法

【技术保护点】
一种分布式定时任务控制装置,其特征在于,包括:接收模块,用于接收定时任务Cron的指令;数据库模块,用于保存Cron记录,其中,每个所述Cron记录具有对应的当前状态信息;多个调度模块,用于分别根据调度时间表对所述数据库模块中的Cron记录进行调度,当Cron记录满足所述调度时间表之后,根据所述Cron记录对应的当前状态信息将所述Cron记录放置到执行队列中;以及执行模块,用于执行所述执行队列之中的Cron记录。

【技术特征摘要】
1.一种分布式定时任务控制装置,其特征在于,包括:接收模块,用于接收定时任务Cron的指令;数据库模块,用于保存Cron记录,其中,每个所述Cron记录具有对应的当前状态信息;多个调度模块,用于分别根据调度时间表对所述数据库模块中的Cron记录进行调度,当Cron记录满足所述调度时间表之后,根据所述Cron记录对应的当前状态信息将所述Cron记录放置到执行队列中;以及执行模块,用于执行所述执行队列之中的Cron记录。2.如权利要求1所述的分布式定时任务控制装置,其特征在于,每个所述Cron记录还具有对应的执行状态信息,所述执行模块根据所述执行状态信息执行所述执行队列之中的Cron记录。3.如权利要求1或2所述的分布式定时任务控制装置,其特征在于,所述当前状态信息包括活跃状态、结束状态、删除状态、暂停状态和配额超限状态中的一种或多种。4.如权利要求3所述的分布式定时任务控制装置,其特征在于,所述多个调度模块对处于活跃状态的Cron记录进行调度。5.如权利要求2所述的分布式定时任务控制装置,其特征在于,所述执行状态信息包括就绪状态、调度状态和运行状态。6.如权利要求5所述的分布式定时任务控制装置,其特征在于,当所述调度模块将Cron记录放置到所述执行队列中之后,将所述Cron记录的执行状态信息修改为调度状态。7.如权利要求6所述的分布式定时任务控制装置,其特征在于,当所述Cron记录的执行状态信息为调度状态或运行状态时,所述执行模块不执行所述Cron记录。8.如权利要求1所述的分布式定时任务控制装置,其特征在于,所述调度模块还用于在Cron记录超时之后,将所述Cron记录丢弃。9.如权利要求1所述的分布式定时任务控制装置,其特征在于,所述...

【专利技术属性】
技术研发人员:安海雄高巍邬晶
申请(专利权)人:百度在线网络技术北京有限公司
类型:发明
国别省市:

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

1