一种检查调度任务前置条件的方法及装置的制造方法

文档序号:9597721阅读:571来源:国知局
一种检查调度任务前置条件的方法及装置的制造方法
【技术领域】
[0001]本发明实施例涉及调度系统批量处理技术,尤其涉及一种检查调度任务前置条件的方法及装置。
【背景技术】
[0002]随着大数据的兴起,互联网公司的业务数据量逐年上升,因此各大互联网公司都在内部推行对大数据挖掘分析技术,并且针对于核心业务系统建设数据仓库。实质上,数据仓库是一个环境,不是一件产品,向用户提供用于决策支持的当前及历史数据。在数据仓库的建设中,基于数据仓库的计算分为两种:一种是即席计算,另一种是批量计算。即席计算,指由工作人员根据当时执行查询或计算的实际情况和实际背景实时写出的SQL语句或者计算算法,这种计算具有多变性、即时性的特征;批量计算,指每次执行的计算都大致相同,唯一不同就是某些特定条件的查询或者计算内容不一样,但整体逻辑仍然一致。
[0003]目前对于数据仓库的计算,采用较多的仍是批量计算,对于批量计算,所采用的方式为:通过调度系统进行定时或者以固定频率来调度执行计算任务。常见的批处理调度系统主要有Azkaban批处理调度系统和Ozzie工作流调度系统。对于批处理调度系统而言,其执行计算任务调度的方式目前只有两种:定时调度和固定频率调度。但在批处理调度系统的实际使用过程中,通常会遇到,如果某个计算任务满足一些前置条件,就需要立即调度并执行该任务,不能以固定的时间或固定频率再去调度执行。
[0004]对于满足前置条件即可进行任务调度的情况,目前主流的调度系统并不具备对调度任务的前置条件进行检查的功能,这样仍只能以定时调度和固定频率调度的方式来执行任务调度,既耽误调度任务的执行效率,又影响调度系统工作效率。

【发明内容】

[0005]有鉴于此,本发明提供一种检查调度任务前置条件的方法及装置,以支持调度系统对调度任务前置条件的检查,从而提高调度系统的调度执行效率。
[0006]—方面,本发明实施例提供了一种检查调度任务前置条件的方法,包括:
[0007]S101、如果监测到系统当前时间达到当前调度任务前置条件的首次检查时间,则启动执行进程;
[0008]S102、检查当前调度任务的前置条件是否满足当前调度任务的执行条件,若是,则执行步骤S103 ;若否,则执行步骤S104 ;
[0009]S103、对当前调度任务进行计算处理,之后结束所述执行进程;
[0010]S104、如果系统当前时间早于当前调度任务前置条件的最后检查时间,则在设定时间内休眠所述执行进程,之后执行步骤S102。
[0011]另一方面,本发明实施例提供了一种检查调度任务前置条件的装置,集成于调度系统,包括:
[0012]执行进程启动模块,用于当监测到系统当前时间达到当前调度任务前置条件的首次检查时间时,启动执行进程;
[0013]前置条件检查模块,用于检查当前调度任务的前置条件是否满足所述调度任务的执行条件,若是,则跳转至调度任务执行模块;若否,则跳转至检查时间判断模块;
[0014]调度任务执行模块,用于对当前调度任务进行计算处理,之后结束所述执行进程;
[0015]检查时间判断模块,用于当系统当前时间早于当前调度任务前置条件的最后检查时间时,在设定时间内休眠所述执行进程,之后跳转至前置条件检查模块。
[0016]本发明实施例提供的一种检查调度任务前置条件的方法和装置,通过调度任务的执行进程,对调度任务的前置条件在其首次检查时间和最后检查时间的间隔内进行是否满足调度任务执行条件的判定,如果前置条件满足判定条件,就可基于执行进程实现调度任务的计算处理。利用该方法在调度系统中实现调度任务前置条件的检查,使调度系统能够满足基于特定前置条件实现对调度任务批量计算的需求,从而提高调度系统的调度执行效率。
【附图说明】
[0017]图1为本发明实施例一提供的一种检查调度任务前置条件的方法的流程示意图;
[0018]图2为本发明实施例二提供的一种检查调度任务前置条件的方法的流程示意图;
[0019]图3为本发明实施例三提供的一种检查调度任务前置条件的装置的结构框图。
【具体实施方式】
[0020] 下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
[0021]实施例一
[0022]图1为本发明实施例一提供的一种检查调度任务前置条件的方法的流程示意图,该方法可以由检查调度任务前置条件的装置执行,其中该装置作为调度系统的一部分集成在调度系统中,本发明实施例一提供的检查调度任务前置条件的方法,如图1所示,包括如下操作:
[0023]S101、如果监测到系统当前时间达到当前调度任务前置条件的首次检查时间,则启动执行进程。
[0024]在本实施例中,所述前置条件具体可为:处理批量计算的调度系统中执行调度任务计算的前提条件。基于前置条件执行调度任务是调度系统进行批量计算的一种新的调度方式。一般地,前置条件实则为一个shell (壳)脚本文件,而所述shell脚本文件包含了调度任务前置条件的所有检查逻辑。该shell脚本文件存放在上传至调度系统的调度任务压缩文件的根目录中。
[0025]在本实施例中,所述前置条件的首次检查时间具体可为允许进行相应调度任务前置条件检查的起始时间,是一个具体的时间点。所述执行进程具体用于检查所述当前调度任务的前置条件是否满足所述调度任务的执行条件以及在前置条件满足执行条件后执行所述调度任务。启动所述执行进程的条件具体可为系统的当前时间达到或超过所述当前调度任务前置条件的首次检查时间。
[0026]S102、检查当前调度任务的前置条件是否满足当前调度任务的执行条件,若是,则执行步骤S103 ;若否,则执行步骤S104。
[0027]在本实施例中,所述调度任务的执行条件具体可为调度任务所需的可读文件、相关数据等执行调度任务要依赖的相关操作信息已经准备就绪,如果准备就绪就可执行任务调度。所述前置条件满足调度任务的执行条件具体可指:在包含前置条件检查逻辑的shell脚本文件中,存在一个返回值,如果返回值为0,则表明对前置条件的检测成功,即前置条件满足调度任务的执行条件。进一步的,如果返回值此时为0,则可执行步骤S103 ;如果返回值为非0,则表明对前置条件的检测失败,此时需执行步骤S104。
[0028]S103、对当前调度任务进行计算处理,之后结束所述执行进程。
[0029]在本实施例中,如果检查到当前调度任务的前置条件满足所述调度任务的执行条件,就可对当前调度任务进行计算处理,在完成调度任务的计算处理工作后就可结束所述执行进程。
[0030]S104、如果系统当前时间早于当前调度任务前置条件的最后检查时间,则在设定时间内休眠所述执行进程,之后执行步骤S102。
[0031]在本实施例中,还设置了对调度任务的前置条件进行检查的最后检查时间,如果执行进程对所述调度任务前置条件的检查达到了最后检查时间,无论包含前置条件检查逻辑的shell脚本文件返回值是否0,都要终止检查进程。
[0032]进一步的,所述前置条件的首次检查时间与最后检查时间的时间间隔小于等于24小时。
[0033]在本实施例中,优选地,所述前置条件的首次检查时间与最后检查时间的时间间隔小于等于24小时。S卩,在首次检查时间与最后检查时间的时间间隔内可由执行进程检查调度任务所需的相关文件或数据是否已经存入当前调度系统的执行集群,若存入当前执行集群,则包含前置条件检查逻辑的shell脚本文件的返回值就会为0,即满足调度任务的执行条件。同时在首次检查时间与最后检查时间的时间间隔内,执行进程每次对所述调度任务的前置条件进行一轮检查之后,如果前置条件不满足执行条件,就会休眠一定的时间然后再次对前置条件进行
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1