基于作业流的分布式调度系统及应用方法技术方案

技术编号:14061174 阅读:79 留言:0更新日期:2016-11-27 17:58
本发明专利技术提供一种基于作业流的分布式调度系统及应用方法,包括:逻辑调度模块、触发器管理模块、数据库交互模块、服务接口模块、作业分发模块、作业应答模块、作业流资源库模块以及执行代理终端模块。其中逻辑调度模块完成作业流及作业的逻辑处理和调度,触发器管理模块完成作业流的触发器新增、触发和删除,数据库交互模块完成系统与数据库之间数据交互,服务接口模块提供对作业流、作业进行控制的对外服务接口,作业分发模块和作业应答模块用于完成对作业的分发和执行代理终端模块执行作业结果的接收、更新,作业流资源库模块存储从数据库读取的作业流配置属性。分担了单点的作业执行压力,提高了作业调度与执行的效率。

【技术实现步骤摘要】

本专利技术涉及作业调度领域,具体地,涉及基于作业流的分布式调度系统及方法。
技术介绍
现有关于作业调度系统的方案大多基于Quartz构建,最主要特征有:作业调度与执行糅合,虽然调度效率较高,但加重了系统负担,在作业并发量较大时其响应与调度效率受到较大限制。以作业为调度单元进行调度,一个作业一个配置,无法复用。作业流由作业间依赖关系串联而成,没有独立属性,不易对作业流全局展现及控制。虽然可以灵活地对作业流中每个作业进行干预,但是缺少对作业流全局的控制,使得作业流调度容易出现逻辑混乱。
技术实现思路
针对现有技术中的缺陷,本专利技术的目的是提供一种基于作业流的分布式调度系统及方法。根据本专利技术提供的一种基于作业流的分布式调度系统,包括:逻辑调度模块、触发器管理模块、数据库交互模块、服务接口模块、作业分发模块、作业应答模块、作业流资源库模块以及执行代理终端模块;所述逻辑调度模块用于完成作业流及作业的逻辑处理和调度;-当一个作业流的触发器触发时,所述逻辑调度模块收到触发消息,并判断此时所述作业流的业务逻辑是否符合触发条件;-当一个作业执行结果被传递到所述逻辑调度模块时,所述逻辑调度模块根据作业结果及作业流属性判定作业流结束,或者调度作业流中所述作业的后续作业;-当人工干预触发作业流或作业操作时,请求被传递到所述逻辑调度模块,所述逻辑调度模块根据作业流属性,判定所述请求是否有效,若有效则触发作业流或作业操作;所述触发器管理模块用于完成作业流的触发器新增、触发和删除,所述触发器管理模块是基于作业流的调度系统并根据作业流进行配置,其中,一个作业流能够对应多个r/>触发器,且所述触发器为时间条件的配置;-当时间条件满足触发器预设条件时,触发器触发作业流调度;-当人工触发作业流时,调度模块为请求创建临时触发器进行调度,在执行结束后删除该触发器;所述数据库交互模块用于完成系统与数据库之间数据交互,其中所述数据库中存储有关于作业流属性配置的全部信息;-当系统启动时从数据库读取所述属性配置的信息;-当系统调度运行时,所述数据库实时存储关于作业流及作业的各种属性、状态信息,且保持所述属性信息与数据库中一致;所述服务接口模块用于提供对作业流、作业进行控制的对外服务接口,通过标准的SOAP协议调用,并且提供对所述作业流的人工干预和查询;所述作业分发模块用于完成作业进入调度进程后的分发,根据所述作业的配置属性,将所述作业执行指令分发到特定的执行终端Agent,同时发送消息以判断各个执行代理终端模块的状态,且所述作业分发模块与Agent所处的物理位置、操作系统类型无关;所述作业应答模块用于完成对作业执行代理终端模块执行作业结果的接收,以及接收应答后对作业状态属性信息的更新;所述作业流资源库模块用于存储从数据库读取的作业流配置属性,包括作业流的基础配置以及其中每个作业的基本配置信息,并在系统运行过程中对所述配置属性进行实时更新;所述执行代理终端模块用于接收调度分发模块发送的作业执行请求,执行作业命令及将结果返回给服务端的应答模块,整个系统包含多个执行代理终端模块,且所述多个执行代理终端模块能够运行在不同的物理节点上。根据本专利技术提供的一种应用上述的基于作业流的分布式调度系统的方法,包括如下步骤:步骤1:启动系统服务端;步骤2:在系统服务端上申请创建作业流;步骤3:根据创建的作业流进行触发;步骤4:作业流触发成功后进入作业应答,执行作业;步骤5:对作业流创建人工控制服务;步骤6:系统执行完作业后,进行作业分发。优选地,所述步骤1包括:步骤1.1:在系统中加载资源配置,包括数据库资源、对外服务接口、队列资源、日志以及控制时间间隔设置;步骤1.2:根据所述配置建立数据库连接,完成数据库交互模块初始化;步骤1.3:启动逻辑调度模块,完成请求队列初始化;步骤1.4:根据所述配置读取作业流配置,调用数据库交互模块,读取数据库中已配置的作业流,同时读取各作业流内作业信息,保存到作业流资源库中;步骤1.5:启动触发器管理模块,根据作业流资源库中作业流触发配置,为作业流创建触发器并进行管理,当触发器被触发时触发作业流,向调度模块队列发调度请求;步骤1.6:启动服务接口模块,启动web服务,使用户能够通过网络调用、管理UI、命令行并对作业流及作业进行查询、控制;步骤1.7:启动作业分发模块,包括启动接收调度模块通知作业分发线程、定时检测作业分发事件线程、执行终端状态检测线程、作业分发线程池;步骤1.8:启动作业应答模块,启动接收执行终端作业结果的服务以及启动检测事件状态通知调度模块的线程;其中所述步骤1.1至步骤1.8中任一模块启动失败,则记录失败日志。优选地,所述步骤2包括:步骤2.1:用户经过授权登入系统,申请创建作业流,系统检验用户权限,通过则授权作业流创建;步骤2.2:根据用户创建的作业流,配置所述作业流的全局属性,重点配置作业流触发策略;步骤2.3:查看作业模版,是否有需要的作业,并添加到作业流中;步骤2.4:若需求的作业在作业模版中不存在,则进入新建作业模版子流程;步骤2.5:新建作业模版时要选择执行代理Agent,若没有需求的Agent,则进入新增Agent子流程;步骤2.6:新增Agent时,将Agent划分到某个应用系统,选择已划分的所述应用系统,若没有合适的应用系统,则进入新增应用系统子流程;步骤2.7:根据应用系统基本信息,包括系统代号、负责人、基本功能说明创建新增应用系统,所述应用系统根据用户需要对Agent进行划分;步骤2.8:作业模版提交成功后编辑作业流依次选择需要的作业模版,若没有合适模板,则新增模版;步骤2.9:选择所有需要的作业模版后,对这些模版配置仅属于所述作业流的属性,其中所述属性包括:作业前后依赖关系、执行超时、报警相关;步骤2.10:编辑作业流结束后用户能够通过作业流逻辑图形展示来检查作业流是否配置正确,确认正确后需要用户激活作业流,激活作业流则该作业流被加载到系统作业流资源库,并进入自动调度。优选地,所述步骤3包括:步骤3.1:触发器管理模块中作业流的触发器被触发,其中所述触发包括作业流定时配置的触发器被触发和人工触发时临时创建的触发器即时触发;步骤3.2:根据触发器关联的作业流,为作业流创建触发请求,所述请求被发送给调度模块;步骤3.3:根据触发请求中关键字,从作业流资源库查找是否存在该作业流;步骤3.4:根据作业流资源库中作业流状态信息判断该作业流能否被触发,当该作业流处于运行或暂停状态时触发器不能被触发;步骤3.5:当作业流未存在于作业流资源库中或该作业流不能被触发时,则触发失败;当作业流未在作业流资源库中找到的情况出现于人工触发新增的作业流时,该作业流未激活,没有被加载到作业流资源库中;步骤3.6:对触发作业流前状态进行备份,若触发失能够恢复到之前状态;步骤3.7:重置作业流内所有作业,将作业流内作业历史状态、关联的事件置为初始状态;步骤3.8:从作业流资源库获取该作业流的初始作业,所述初始作业包括普通的作业和特殊的Box作业,所述Box作业能够包含多个作业流分支,用于作业有多个依赖作业的情况;若是Box作业,则需获取Box内每个分支流的初始作业;步骤3.9:为获取到的初始作业创建事件,所述事件用于本文档来自技高网...

【技术保护点】
一种基于作业流的分布式调度系统,其特征在于,包括:逻辑调度模块、触发器管理模块、数据库交互模块、服务接口模块、作业分发模块、作业应答模块、作业流资源库模块以及执行代理终端模块;所述逻辑调度模块用于完成作业流及作业的逻辑处理和调度;‑当一个作业流的触发器触发时,所述逻辑调度模块收到触发消息,并判断此时所述作业流的业务逻辑是否符合触发条件;‑当一个作业执行结果被传递到所述逻辑调度模块时,所述逻辑调度模块根据作业执行结果及作业流属性判定作业流结束,或者调度作业流中所述作业的后续作业;‑当人工干预触发作业流或作业操作时,作业流触发请求被传递到所述逻辑调度模块,所述逻辑调度模块根据作业流属性,判定所述作业流触发请求是否有效,若有效则触发作业流或作业操作;所述触发器管理模块用于完成作业流的触发器新增、触发和删除,所述触发器管理模块是基于作业流的调度系统并根据作业流进行配置,其中,一个作业流能够对应多个触发器,且所述触发器为时间条件的配置;‑当时间条件满足触发器预设条件时,触发器触发作业流调度;‑当人工触发作业流时,逻辑调度模块为请求创建临时触发器进行调度,在执行结束后删除该触发器;所述数据库交互模块用于完成分布式调度系统与数据库之间数据交互,其中所述数据库中存储有关于作业流属性配置的全部信息;‑当分布式调度系统启动时从数据库读取所述属性配置的信息;‑当分布式调度系统调度运行时,所述数据库实时存储关于作业流及作业的各种属性、状态信息,且保持所述属性信息与数据库中一致;所述服务接口模块用于提供对作业流、作业进行控制的对外服务接口,通过标准的SOAP协议调用,并且提供人工对所述作业流的干预以及查询所述作业流的信息;所述作业分发模块用于完成作业进入调度进程后的分发,根据所述作业的配置属性,将作业执行指令分发到特定的执行代理终端模块,同时发送消息以判断各个执行代理终端模块的状态,且所述作业分发模块与执行代理终端模块所处的物理位置、操作系统类型无关;所述作业应答模块用于完成对执行代理终端模块作业执行结果的接收,以及接收应答后对作业状态属性信息的更新;所述作业流资源库模块用于存储从数据库读取的作业流配置属性,作业流配置属性包括作业流的基础配置以及其中每个作业的基本配置信息,并在系统运行过程中对所述配置属性进行实时更新;所述执行代理终端模块用于接收逻辑调度模块发送的作业执行请求,根据所述作业执行请求执行作业命令,并将结果返回给作业应答模块,整个分布式调度系统包含多个执行代理终端模块,且所述多个执行代理终端模块能够运行在不同的物理节点上。...

【技术特征摘要】
1.一种基于作业流的分布式调度系统,其特征在于,包括:逻辑调度模块、触发器管理模块、数据库交互模块、服务接口模块、作业分发模块、作业应答模块、作业流资源库模块以及执行代理终端模块;所述逻辑调度模块用于完成作业流及作业的逻辑处理和调度;-当一个作业流的触发器触发时,所述逻辑调度模块收到触发消息,并判断此时所述作业流的业务逻辑是否符合触发条件;-当一个作业执行结果被传递到所述逻辑调度模块时,所述逻辑调度模块根据作业执行结果及作业流属性判定作业流结束,或者调度作业流中所述作业的后续作业;-当人工干预触发作业流或作业操作时,作业流触发请求被传递到所述逻辑调度模块,所述逻辑调度模块根据作业流属性,判定所述作业流触发请求是否有效,若有效则触发作业流或作业操作;所述触发器管理模块用于完成作业流的触发器新增、触发和删除,所述触发器管理模块是基于作业流的调度系统并根据作业流进行配置,其中,一个作业流能够对应多个触发器,且所述触发器为时间条件的配置;-当时间条件满足触发器预设条件时,触发器触发作业流调度;-当人工触发作业流时,逻辑调度模块为请求创建临时触发器进行调度,在执行结束后删除该触发器;所述数据库交互模块用于完成分布式调度系统与数据库之间数据交互,其中所述数据库中存储有关于作业流属性配置的全部信息;-当分布式调度系统启动时从数据库读取所述属性配置的信息;-当分布式调度系统调度运行时,所述数据库实时存储关于作业流及作业的各种属性、状态信息,且保持所述属性信息与数据库中一致;所述服务接口模块用于提供对作业流、作业进行控制的对外服务接口,通过标准的SOAP协议调用,并且提供人工对所述作业流的干预以及查询所述作业流的信息;所述作业分发模块用于完成作业进入调度进程后的分发,根据所述作业的配置属性,将作业执行指令分发到特定的执行代理终端模块,同时发送消息以判断各个执行代理终端模块的状态,且所述作业分发模块与执行代理终端模块所处的物理位置、操作系统类型无关;所述作业应答模块用于完成对执行代理终端模块作业执行结果的接收,以及接收应答后对作业状态属性信息的更新;所述作业流资源库模块用于存储从数据库读取的作业流配置属性,作业流配置属性包括作业流的基础配置以及其中每个作业的基本配置信息,并在系统运行过程中对所述配置属性进行实时更新;所述执行代理终端模块用于接收逻辑调度模块发送的作业执行请求,根据所述作业执行请求执行作业命令,并将结果返回给作业应答模块,整个分布式调度系统包含多个执行代理终端模块,且所述多个执行代理终端模块能够运行在不同的物理节点上。2.一种权利要求1所述的基于作业流的分布式调度系统的应用方法,其特征在于,包括如下步骤:步骤1:启动分布式调度系统服务端;步骤2:在分布式调度系统服务端上申请创建作业流;步骤3:根据创建的作业流进行触发;步骤4:作业流触发成功后进入作业应答,执行作业;步骤5:对作业流创建人工控制服务;步骤6:分布式调度系统执行完作业后,进行作业分发。3.根据权利要求2所述的基于作业流的分布式调度系统的应用方法,其特征在于,所述步骤1包括:步骤1.1:在分布式调度系统中加载资源配置,包括数据库资源、对外服务接口、队列资源、日志以及控制时间间隔设置;步骤1.2:根据所述资源配置建立数据库连接,完成数据库交互模块初始化;步骤1.3:启动逻辑调度模块,完成请求队列初始化;步骤1.4:根据所述资源配置读取作业流配置,调用数据库交互模块,读取数据库中已配置的作业流,同时读取各作业流内作业信息,保存到作业流资源库模块中;步骤1.5:启动触发器管理模块,根据作业流资源库模块中作业流触发配置,为作业流创建触发器并进行管理,当触发器被触发时触发作业流,向逻辑调度模块发调度请求;步骤1.6:启动服务接口模块,启动web服务,使用户能够通过网络调用命令行以及管理UI,并对作业流及作业进行查询、控制;步骤1.7:启动作业分发模块,包括启动接收逻辑调度模块通知作业分发线程、定
\t时检测作业分发事件线程、执行代理终端模块状态检测线程、作业分发线程池;步骤1.8:启动作业应答模块,启动接收执行代理终端模块作业结果的服务以及启动检测事件状态通知调度模块的线程;其中,若所述逻辑调度模块、触发器管理模块、数据库交互模块、服务接口模块、作业分发模块、作业应答模块、作业流资源库模块以及执行代理终端模块中任一模块启动失败,则记录失败日志。4.根据权利要求2所述的基于作业流的分布式调度系统的应用方法,其特征在于,所述步骤2包括:步骤2.1:用户经过授权登入系统,申请创建作业流,系统检验用户权限,通过则授权作业流创建;步骤2.2:根据用户创建的作业流,配置所述作业流的全局属性和触发策略;步骤2.3:根据用户指令将有需要的作业添加到作业流中;步骤2.4:若有需要的作业在作业模版中不存在,则进入步骤2.5;若有需要的作业在作业模板中已经存在,则选择作业模板并进入步骤2.9;步骤2.5:新建作业模版时要选择执行代理终端模块,若有需要的执行代理终端模块不存在,则进入步骤2.6;步骤2.6:新增执行代理终端模块时,将执行代理终端模块划分到某个应用系统,选择已划分的所述应用系统,若没有合适的应用系统,则新增应用系统;步骤2.7:根据应用系统基本信息,包括系统代号、负责人、基本功能说明创建新增应用系统,所述应用系统根据用户需要对执行代理终端模块进行划分;步骤2.8:作业模版提交成功后编辑作业流依次选择需要的作业模版,若没有合适的作业模板,则新增作业模版;步骤2.9:选择所有需要的作业模版后,对这些作业模版配置仅属于所述作业流的属性,其中所述属性包括:作业前后依赖关系、执行超时条件、报警条件;步骤2.10:编辑作业流结束后用户能够通过作业流逻辑图形展示来检查作业流是否配置正确,确认正确后需要用户激活作业流,激活作业流则该作业流被加载到系统作业流资源库,并进入自动调度。5.根据权利要求2所述的基于作业流的分布式调度系统的应用方法,其特征在于,所述步骤3包括:步骤3.1:触发器管理模块中作业流的触发器被触发,其中所述触发包括作业流定
\t时配置的触发器被触发和人工触发时临时创建的触发器即时触发;步骤3.2:根据触发器关联的作业流,为作业流创建触发请求,且所述触发请求被发送给逻辑调度模块;步骤3.3:根据触发请求中的关键字,从作业流资源库查找是否存在该作业流;若存在...

【专利技术属性】
技术研发人员:姜宇顾宇栋赵新阳龚新平王凯茹伍治平王磊
申请(专利权)人:上海宝信软件股份有限公司
类型:发明
国别省市:上海;31

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

1