[发明专利]有向无环图的链式依赖分析方法及系统有效
| 申请号: | 201910016214.0 | 申请日: | 2019-01-08 |
| 公开(公告)号: | CN109684229B | 公开(公告)日: | 2022-03-15 |
| 发明(设计)人: | 王联军;马平男;王有兵;陈如亨 | 申请(专利权)人: | 杭州雅拓信息技术有限公司 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36 |
| 代理公司: | 杭州裕阳联合专利代理有限公司 33289 | 代理人: | 姚宇吉 |
| 地址: | 310000 浙江省*** | 国省代码: | 浙江;33 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 无环图 链式 依赖 分析 方法 系统 | ||
本发明提供了一种有向无环图的链式依赖分析方法和系统,其中,方法包括以下步骤:通过全局扫描器检测当前批次的前序批次任务是否均已完成;若前序批次任务均已完成,则将当前批次的所有任务实例化;运行所有根节点任务;判断所有根节点任务是否全部正常运行结束;若全部根节点任务已经全部正常运行结束,则通过节点扫描器对各自根节点任务所属的所有后续任务进行监控和运行;若当前批次的所有根节点任务和其所属的后续任务均已全部正常运行结束,则进行后续批次的跑批。本发明在服务器资源有限的情况下,对DAG链式依赖的高效分析与任务执行的实时性,当前批次运行时,通过节点扫描器只对后续任务进行实时监控,其扫描作业较少,实时效率较高。
技术领域
本发明涉及区块链技术领域,特别涉及一种有向无环图的链式依赖分析方法及系统。
背景技术
现有关于有向无环图的链式依赖分析有以下两种方案:一种是创建等待任务视图,该视图实时监控任务运行表以及任务依赖关系表,将可以进入运行队列的任务加入到视图当中,程序以一定的时间间隔扫描该视图,运行等待任务;另一种是程序实时扫描任务运行表中的等待任务,分析所有等待任务的前置依赖是否已经全部完成,若完成再运行等待任务。方案一中的问题是:由于视图对任务的依赖分析需要一定时间,所以扫描时间间隔不能过小且不好预估,实时性比较差。方案二中的问题是:任务数量不宜过大,否则每一次轮询等待任务并分析等待任务的依赖都需要大量的时间消耗,降低实时性;高速扫描会占用大量的服务器资源。但是不论方案一还是方案二,均存在不管任务是否已经全部完成,两种方案的扫描程序都会一直运行,会造成服务器资源的浪费的问题。
发明内容
本发明提供一种有向无环图的链式依赖分析方法及系统,解决现有上述的问题。
为解决上述问题,本发明实施例提供一种有向无环图的链式依赖分析方法,包括以下步骤:
通过全局扫描器检测当前批次的前序批次任务是否均已完成;
若前序批次任务均已完成,则将当前批次的所有任务实例化;
运行所有根节点任务;
判断所有根节点任务是否全部正常运行结束;
若全部根节点任务已经全部正常运行结束,则通过节点扫描器对各自根节点任务所属的所有后续任务进行监控和运行;
若当前批次的所有根节点任务和其所属的后续任务均已全部正常运行结束,则进行后续批次的跑批。
作为一种实施方式,还包括以下步骤:
若在根节点任务运行中出现错误或在根节点任务的后续任务运行中出现错误,则通过错误重调扫描器重新调用该运行错误的失败任务;
监控失败任务是否正常运行结束,若失败任务正常运行结束,则在检测所有任务完成后,完成当前批次的任务的跑批;若失败任务没有正常运行,则对失败任务的没有正常完成的次数进行统计,当次数达到上限,则异常结束当前批次任务的跑批。
作为一种实施方式,还包括以下步骤:
若任务实例化后存在N个根节点任务,则启动N个线程来分析N个根节点任务和其所属后续任务。
作为一种实施方式,若根节点任务或其所属后续任务不能正常运行结束,且重调后仍没发正常完成,则关闭存在该任务所属的线程。
作为一种实施方式,每一批次任务跑批的时间间隔为5分钟。
本发明还提供一种有向无环图的链式依赖分析系统,包括:
全局扫描模块,用于通过全局扫描器检测当前批次的前序批次任务是否均已完成;
实例化模块,用于若前序批次任务均已完成,则将当前批次的所有任务实例化;
运行模块,用于运行所有根节点任务;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州雅拓信息技术有限公司,未经杭州雅拓信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910016214.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种性能测试方法、装置、系统和存储介质
- 下一篇:存储器系统及其操作方法





