一种任务调度方法、装置、电子设备及可读存储介质制造方法及图纸

技术编号:28372991 阅读:9 留言:0更新日期:2021-05-08 00:00
本发明专利技术涉及任务调度技术领域,具体涉及一种任务调度方法、装置、电子设备及计算机可读存储介质。所述方法包括:接收任务调度指令,其中所述任务调度指令用于驱动任务调度进程;根据所述任务调度指令,读取数据库中存储的任务依赖模型;其中所述任务依赖模型为根据预设依赖规则构建并包括多种依赖关系的多个任务节点的依赖树;所述每一个任务节点均具有唯一的ID标识;根据预设的任务调度配置规则,在所述任务依赖模型中获取目标任务节点;其中所述目标任务节点为当前状态为执行中的任务节点;判断并根据所述目标任务节点的阶位执行任务调度策略。

【技术实现步骤摘要】
一种任务调度方法、装置、电子设备及可读存储介质
本专利技术涉及计算机任务调度
,具体涉及一种任务调度方法、装置、电子设备及可读存储介质。
技术介绍
任务调度即自动执行事件中的任务的过程,它是批量调用、定时执行、异步处理等领域中不可或缺的组成部分。时间的正确执行需要保证自动按照正确的执行顺序执行所有程序段,这就需要依赖于任务的调度管理,但是目前业界的任务调度方法普遍从保证事务的最终一致性出发而提供批量调用或者异步调用方法,却对任务依赖关系和依赖模型很少关注但是由于任务之间的关系往往存在依赖关系,如果要正确地完成事件,需用正确的模型保证在执行的过程能够识别依赖关系,且可以在尽可能短的事件内完成事件,因此如何用清晰的模型结构表示依赖关系、构建依赖模型并实现对依赖模型的存储和读取对应用事件的执行是十分重要。
技术实现思路
本申请的目的旨在至少能解决上述的技术缺陷之一。本申请所采用的技术方案如下:第一方面,本申请实施例公开了一种任务调度方法,所述方法包括:接收任务调度指令,其中所述任务调度指令用于驱动任务调度进程;根据所述任务调度指令,读取数据库中存储的任务依赖模型;其中所述任务依赖模型为根据预设依赖规则构建并包括多种依赖关系的多个任务节点的依赖树;所述每一个任务节点均具有唯一的ID标识;根据预设的任务调度配置规则,在所述任务依赖模型中获取目标任务节点;其中所述目标任务节点为当前状态为执行中的任务节点;判断并根据所述目标任务节点的阶位执行任务调度策略。进一步地,所述任务依赖模型的预设依赖规则构建包括:获取目标事件执行进程中的所有任务节点;根据选定任务节点的依赖关系构建所述选定任务节点的依赖关系;其中所述选定任务节点可以是所有任务节点中的任意一个任务节点;根据每一个任务节点的依赖关系构建出包括所有任务节点依赖关系的依赖总图;根据预设的转化规则,将所述目标事件的依赖总图转化为依赖树;其中所述依赖树中父节点与子节点的ID标识具有共性部分。进一步地,所述预设的转化规则包括:如果选定的任务节点依赖于多个任务节点,则引入虚拟节点作为被依赖的多个任务节点的直接上阶节点;其中所述选定的任务节点可以是所有任务节点中的任意一个任务节点。进一步地,在将依赖总图转化为依赖树之后,所述方法还包括:将所述依赖树存储于关系型数据库中。进一步地,将所述依赖树存储于关系型数据库中还包括:存储所述依赖树中每一个任务节点的ID标识、ID路径和节点状态;其中,在存储过程中标注父节点的ID标识;其中所述节点状态包括执行状态。。进一步地,所述根据所述任务调度指令,读取数据库中存储的任务依赖模型包括:根据存储的ID路径,遍历读取依赖树模型的所有任务节点;和/或,根据存储的ID标识和标注的父节点ID标识,遍历读取依赖树模型中的所有依赖关系和叶子节点。进一步地,所述预设的任务调度配置规则包括:遍历读取依赖树模型获取当前状态为非执行完成的第一任务节点;查询所述第一任务节点是否存在依赖节点;如果存在,则查询所述第一任务节点的依赖节点是否执行完成,进一步地如果执行完成,则设置所述第一任务节点的状态为执行中;如果不存在,则设置所述第一任务节点的状态为执行中。进一步地,判断并根据所述目标任务节点的阶位执行任务调度策略包括:查询所述目标任务节点是否为末阶叶子节点;如果是,则对所述目标任务节点执行任务后将所述目标任务节点当前状态设置为执行完成;如果否,则对所述目标任务节点的依赖节点执行任务后将所述目标任务节点当前状态设置为执行完成;迭代对目标任务节点的任务调度策略直至依赖树中的根节点状态为执行完成后结束任务调度进程。另一方面本申请实施例提供了一种任务调度装置,所述装置包括接口模块、读取模块、存储模块、处理模块和执行模块,其中,所述接口模块,用于接收任务调度指令,其中所述任务调度指令用于驱动任务调度进程;所述读取模块,用于根据所述任务调度指令,读取数据库中存储的任务依赖模型;其中所述任务依赖模型为根据预设依赖规则构建并包括多种依赖关系的多个任务节点的依赖树;所述每一个任务节点均具有唯一的ID标识;所述读取模块,还用于根据预设的任务调度配置规则,在所述任务依赖模型中获取目标任务节点;其中所述目标任务节点为当前状态为执行中的任务节点;所述存储模块用于存储数据库、预设依赖规则和预设的任务调度配置规则;所述处理模块,用于判断所述目标任务节点的阶位;所述执行模块,用于根据所述目标任务节点的阶位执行任务调度策略。进一步地,所述装置还包括构建模块,其中所述构建模块用于根据预设依赖规则构建所述任务依赖模型;所述构建模块具体用于:获取目标事件执行进程中的所有任务节点;根据选定任务节点的依赖关系构建所述选定任务节点的依赖关系;其中所述选定任务节点可以是所有任务节点中的任意一个任务节点;根据每一个任务节点的依赖关系构建出包括所有任务节点依赖关系的依赖总图;根据预设的转化规则,将所述目标事件的依赖总图转化为依赖树;其中所述依赖树中父节点与子节点的ID标识具有共性部分。进一步地,所述预设的转化规则包括:如果选定的任务节点依赖于多个任务节点,则引入虚拟节点作为被依赖的多个任务节点的直接上阶节点;其中所述选定的任务节点可以是所有任务节点中的任意一个任务节点。进一步地,所述预设的任务调度配置规则包括:遍历读取依赖树模型获取当前状态为非执行完成的第一任务节点;查询所述第一任务节点是否存在依赖节点;如果存在,则查询所述第一任务节点的依赖节点是否执行完成,进一步地如果执行完成,则设置所述第一任务节点的状态为执行中;如果不存在,则设置所述第一任务节点的状态为执行中。进一步地,在可选实施例中,所述处理模块具体用于查询所述目标任务节点是否为末阶叶子节点;如果是,则所述执行模块用于对所述目标任务节点执行任务,后所述处理模块将所述目标任务节点当前状态设置为执行完成;如果否,则所述执行模块用于对所述目标任务节点的依赖节点执行任务,后所述处理模块用于将所述目标任务节点当前状态设置为执行完成;迭代对目标任务节点的任务调度策略直至依赖树中的根节点状态为执行完成后结束任务调度进程。第三方面,本申请实施例提供了一种电子设备,包括处理器和存储器;所述存储器,用于存储操作指令;所述处理器,用于通过调用所述操作指令,执行上述任一实施例中所述的方法。第四方面,本申请实施例提供了一种计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一实施例所述的方法。本申请实施例提供的任务调度方案包括接收任务调度指令,其中所述任务调度指令用于驱动任务调度进程;根据所述任务调度指令,读取数据库中存储的任务依赖模型;其中所述任务依赖模本文档来自技高网...

【技术保护点】
1.一种任务调度方法,其特征在于,所述方法包括:/n接收任务调度指令,其中所述任务调度指令用于驱动任务调度进程;/n根据所述任务调度指令,读取数据库中存储的任务依赖模型;其中所述任务依赖模型为根据预设依赖规则构建并包括多种依赖关系的多个任务节点的依赖树;所述每一个任务节点均具有唯一的ID标识;/n根据预设的任务调度配置规则,在所述任务依赖模型中获取目标任务节点;其中所述目标任务节点为当前状态为执行中的任务节点;/n判断并根据所述目标任务节点的阶位执行任务调度策略。/n

【技术特征摘要】
1.一种任务调度方法,其特征在于,所述方法包括:
接收任务调度指令,其中所述任务调度指令用于驱动任务调度进程;
根据所述任务调度指令,读取数据库中存储的任务依赖模型;其中所述任务依赖模型为根据预设依赖规则构建并包括多种依赖关系的多个任务节点的依赖树;所述每一个任务节点均具有唯一的ID标识;
根据预设的任务调度配置规则,在所述任务依赖模型中获取目标任务节点;其中所述目标任务节点为当前状态为执行中的任务节点;
判断并根据所述目标任务节点的阶位执行任务调度策略。


2.根据权利要求1所述的任务调度方法,其特征在于,所述任务依赖模型的预设依赖规则构建包括:
获取目标事件执行进程中的所有任务节点;
根据选定任务节点的依赖关系构建所述选定任务节点的依赖关系;其中所述选定任务节点可以是所有任务节点中的任意一个任务节点;
根据每一个任务节点的依赖关系构建出包括所有任务节点依赖关系的依赖总图;
根据预设的转化规则,将所述目标事件的依赖总图转化为依赖树;其中所述依赖树中父节点与子节点的ID标识具有共性部分。


3.根据权利要求2所述的任务调度方法,其特征在于,所述预设的转化规则包括:
如果选定的任务节点依赖于多个任务节点,则引入虚拟节点作为被依赖的多个任务节点的直接上阶节点;其中所述选定的任务节点可以是所有任务节点中的任意一个任务节点。


4.根据权利要求3所述的任务调度方法,其特征在于,在将依赖总图转化为依赖树之后,所述方法还包括:
将所述依赖树存储于关系型数据库中。


5.根据权利要求4所述的任务调度方法,其特征在于,将所述依赖树存储于关系型数据库中还包括:
存储所述依赖树中每一个任务节点的ID标识、ID路径和节点状态;其中,在存储过程中标注父节点的ID标识;其中所述节点状态包括执行状态。


6.根据权利要求5所述的任务调度方法,其特征在于,所述根据所述任务调度指令,读取数据库中存储的任务依赖模型包括:
根据存储的ID路径,遍历读取依赖树模型的所有任务节点;和/或,
根据存储的ID标识和标注的父节点ID标识,遍历读取依赖树模型中的所有依赖关系和叶子节点。


7.根据权利要求6所述的任务调度方法,其特征在于,所述预设的任务调度配置规则包括:
遍历读取依赖树模型获取当前状态为非执行完成的第一任务节点;
查询所述第一任务节点是否存在依赖节点;
如果存在,则查询所述第一任务节点的依赖节点是否执行完成,进一步地如果执行完成,则设置所述第一任务节点的状态为执行中;
如果不存在,则设置所述第一任务节点的状态为执行中。


8.根据权利要求7所述的任务调度方法,其特征在于,判断并根据所述目标任务节点的阶位执行任务调度策略包括:
查询所述目标任务节点是否为末阶叶子节点;
如果是,则对所述目标任务节点执行任务后将所述目标任务节点当前状态设置为执行完成;
如果否,则对所述目标任务节点的依赖节点执行任务后将所述目标任务节点当前状态设置为执行完成;
迭代对目标任务节点的任务调度策略直至依赖树中的根节点状态为执行完成后结束任务调度进程。

【专利技术属性】
技术研发人员:黄青君程强马波
申请(专利权)人:建信金融科技有限责任公司
类型:发明
国别省市:上海;31

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

1