[发明专利]一种任务执行顺序计算方法、装置、设备及可读存储介质在审
申请号: | 202210212608.5 | 申请日: | 2022-03-04 |
公开(公告)号: | CN114564297A | 公开(公告)日: | 2022-05-31 |
发明(设计)人: | 钱昊;聂文真;田泽培 | 申请(专利权)人: | 中信银行股份有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F16/901 |
代理公司: | 北京市兰台律师事务所 11354 | 代理人: | 操飞越;张峰 |
地址: | 100020 北京市朝阳区光*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 任务 执行 顺序 计算方法 装置 设备 可读 存储 介质 | ||
本发明提供了一种任务执行顺序计算方法、装置、设备及可读存储介质,所述方法包括获取至少两个待执行任务的信息;根据所述待执行任务的信息构建有向无环图,所述有向无环图包括所述待执行任务的任务节点的连接关系,一个所述待执行任务对应一个任务节点;对所述有向无环图中的所述任务节点进行检测,得到待执行任务的执行顺序;根据所述待执行任务的执行顺序执行所述待执行任务,本发明通过将具有依赖关系的待执行任务构成有向无环图,对有向无环图中的任务节点进行检测快速得到任务的执行顺序并执行待执行的任务,提高了执行具有依赖关系的任务的执行效率。
技术领域
本发明涉及任务调度技术领域,具体而言,涉及一种任务执行顺序计算方法、装置、设备及可读存储介质。
背景技术
现有技术通过ETLPLUS设置相关作业的执行,通过提前预设相关上下游作业间依赖配置关系,全部执行完才能触发下游依赖作业,并需要预留一段时间,确保上一个作业执行完才执行下一个,中间还是有一部分时间被浪费掉了,而且在处理多并发依赖作业时,整体的效率相对较低,经常查询一个作业依赖上下游关系需要相当长的一段时间。
发明内容
本发明的目的在于提供一种任务执行顺序计算方法、装置、设备及可读存储介质,以改善上述问题。
为了实现上述目的,本发明采取的技术方案如下:
一方面,本申请实施例提供了一种任务执行顺序计算方法,所述方法包括:
获取至少两个待执行任务的信息;
根据所述待执行任务的信息构建有向无环图,所述有向无环图包括所述待执行任务的任务节点的连接关系,一个所述待执行任务对应一个任务节点;
对所述有向无环图中的所述任务节点进行检测,得到待执行任务的执行顺序;
根据所述待执行任务的执行顺序执行所述待执行任务。
可选的,所述根据所述待执行任务的信息构建有向无环图,包括:
获取待执行任务之间的依赖关系;
根据所述待执行任务之间的依赖关系将所述待执行任务的任务节点采用有向箭头一一连接,构建有向无环图。
可选的,所述对所述有向无环图中的所述任务节点进行检测,得到待执行任务的执行顺序,包括:
建立深度优先搜索模型,所述深度优先搜索模型用于访问所述有向无环图中的每一个任务节点;
将所述有向无环图发送至所述深度优先搜索模型中,并将所述有向无环图中包括的所述任务节点均标记为未发现状态;
利用所述深度优先搜索模型,访问所述有向无环图中包括的标记为未发现状态的任务节点,并将访问过的任务节点标记为发现状态,标记为所述发现状态后触发所述深度优先搜索模型查找与所述任务节点相连的其他任务节点,得到所述任务节点与所述任务节点相连的其他任务节点之间的连接关系,直到所述有向无环图中的任务节点均标记为发现状态后得到第一信息,所述第一信息包括每个所述任务节点与其连接的其他任务节点之间的连接关系;
根据所述第一信息,检测所述任务节点出度是否为0,得到所述待执行任务的执行顺序。
可选的,所述根据所述第一信息,检测所述任务节点出度是否为0,得到所述待执行任务的执行顺序,包括:
根据所述第一信息检测所述任务节点,将出度为0的所述任务节点标记为待输出状态并对该任务节点进行编号得到编号信息,将所述任务节点标记为待输出状态后触发断开指向该任务节点的有向箭头,断开后将断开前与该任务节点相连的任意一个任务节点标记为待输出状态并对其进行编号,直到所有的任务节点均标记为待输出状态以及所有的任务节点均具有相应的编号信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中信银行股份有限公司,未经中信银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210212608.5/2.html,转载请声明来源钻瓜专利网。