CN109684229A - 有向无环图的链式依赖分析方法及系统 - Google Patents
有向无环图的链式依赖分析方法及系统 Download PDFInfo
- Publication number
- CN109684229A CN109684229A CN201910016214.0A CN201910016214A CN109684229A CN 109684229 A CN109684229 A CN 109684229A CN 201910016214 A CN201910016214 A CN 201910016214A CN 109684229 A CN109684229 A CN 109684229A
- Authority
- CN
- China
- Prior art keywords
- task
- root node
- tasks
- follow
- batch
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3612—Software analysis for verifying properties of programs by runtime analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种有向无环图的链式依赖分析方法和系统,其中,方法包括以下步骤:通过全局扫描器检测当前批次的前序批次任务是否均已完成;若前序批次任务均已完成,则将当前批次的所有任务实例化;运行所有根节点任务;判断所有根节点任务是否全部正常运行结束;若全部根节点任务已经全部正常运行结束,则通过节点扫描器对各自根节点任务所属的所有后续任务进行监控和运行;若当前批次的所有根节点任务和其所属的后续任务均已全部正常运行结束,则进行后续批次的跑批。本发明在服务器资源有限的情况下,对DAG链式依赖的高效分析与任务执行的实时性,当前批次运行时,通过节点扫描器只对后续任务进行实时监控,其扫描作业较少,实时效率较高。
Description
技术领域
本发明涉及区块链技术领域,特别涉及一种有向无环图的链式依赖分析方法及系统。
背景技术
现有关于有向无环图的链式依赖分析有以下两种方案:一种是创建等待任务视图,该视图实时监控任务运行表以及任务依赖关系表,将可以进入运行队列的任务加入到视图当中,程序以一定的时间间隔扫描该视图,运行等待任务;另一种是程序实时扫描任务运行表中的等待任务,分析所有等待任务的前置依赖是否已经全部完成,若完成再运行等待任务。方案一中的问题是:由于视图对任务的依赖分析需要一定时间,所以扫描时间间隔不能过小且不好预估,实时性比较差。方案二中的问题是:任务数量不宜过大,否则每一次轮询等待任务并分析等待任务的依赖都需要大量的时间消耗,降低实时性;高速扫描会占用大量的服务器资源。但是不论方案一还是方案二,均存在不管任务是否已经全部完成,两种方案的扫描程序都会一直运行,会造成服务器资源的浪费的问题。
发明内容
本发明提供一种有向无环图的链式依赖分析方法及系统,解决现有上述的问题。
为解决上述问题,本发明实施例提供一种有向无环图的链式依赖分析方法,包括以下步骤:
通过全局扫描器检测当前批次的前序批次任务是否均已完成;
若前序批次任务均已完成,则将当前批次的所有任务实例化;
运行所有根节点任务;
判断所有根节点任务是否全部正常运行结束;
若全部根节点任务已经全部正常运行结束,则通过节点扫描器对各自根节点任务所属的所有后续任务进行监控和运行;
若当前批次的所有根节点任务和其所属的后续任务均已全部正常运行结束,则进行后续批次的跑批。
作为一种实施方式,还包括以下步骤:
若在根节点任务运行中出现错误或在根节点任务的后续任务运行中出现错误,则通过错误重调扫描器重新调用该运行错误的失败任务;
监控失败任务是否正常运行结束,若失败任务正常运行结束,则在检测所有任务完成后,完成当前批次的任务的跑批;若失败任务没有正常运行,则对失败任务的没有正常完成的次数进行统计,当次数达到上限,则异常结束当前批次任务的跑批。
作为一种实施方式,还包括以下步骤:
若任务实例化后存在N个根节点任务,则启动N个线程来分析N个根节点任务和其所属后续任务。
作为一种实施方式,若根节点任务或其所属后续任务不能正常运行结束,且重调后仍没发正常完成,则关闭存在该任务所属的线程。
作为一种实施方式,每一批次任务跑批的时间间隔为5分钟。
本发明还提供一种有向无环图的链式依赖分析系统,包括:
全局扫描模块,用于通过全局扫描器检测当前批次的前序批次任务是否均已完成;
实例化模块,用于若前序批次任务均已完成,则将当前批次的所有任务实例化;
运行模块,用于运行所有根节点任务;
判断模块,用于判断所有根节点任务是否全部正常运行结束;
节点扫描模块,用于若全部根节点任务已经全部正常运行结束,则通过节点扫描器对各自根节点任务所属的所有后续任务进行监控和运行;若当前批次的所有根节点任务和其所属的后续任务均已全部正常运行结束,则进行后续批次的跑批。
作为一种实施方式,还包括:
错误重调模块,用于若在根节点任务运行中出现错误或在根节点任务的后续任务运行中出现错误,则通过错误重调扫描器重新调用该运行错误的失败任务;
监测模块,用于监控失败任务是否正常运行结束,若失败任务正常运行结束,则在检测所有任务完成后,完成当前批次的任务的跑批;
次数模块,用于若失败任务没有正常运行,则对失败任务的没有正常完成的次数进行统计,当次数达到上限,则异常结束当前批次任务的跑批。
作为一种实施方式,还包括:
线程单元,用于若任务实例化后存在N个根节点任务,则启动N个线程来分析N个根节点任务和其所属后续任务。
作为一种实施方式,线程单元还用于若根节点任务或其所属后续任务不能正常运行结束,且重调后仍没发正常完成,则关闭存在该任务所属的线程。
作为一种实施方式,每一批次任务跑批的时间间隔为5分钟。
本发明相比于现有技术的有益效果在于:在服务器资源有限的情况下,对DAG(有向无环图)链式依赖的高效分析与任务执行的实时性,当前批次运行时,通过节点扫描器只对后续任务进行实时监控,其扫描作业较少,实时效率较高;在当前批次未到来时,全局扫描的扫描粒度可控,根据实际业务需求可做调节,减小服务器压力;错误重调机制可以保证临时资源不足时偶然错误不会影响整体任务的跑批。
附图说明
图1为本发明的有向无环图的链式依赖分析方法的流程图;
图2为本发明的有向无环图的链式依赖分析系统的模块连接图;
图3为本发明的有向无环图的链式依赖分析系统中错误重调机制的模块连接图。
附图标注:1、全局扫描模块;2、实例化模块;3、运行模块;4、判断模块;5、节点扫描模块;6、错误重调模块;7、监测模块;8、次数模块。
具体实施方式
以下结合附图,对本发明上述的和另外的技术特征和优点进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的部分实施例,而不是全部实施例。
实施例一
如图1所示,一种有向无环图的链式依赖分析方法,包括以下步骤:
S100:通过全局扫描器检测当前批次的前序批次任务是否均已完成;
S200:若前序批次任务均已完成,则将当前批次的所有任务实例化;
S300:运行所有根节点任务;
S400:判断所有根节点任务是否全部正常运行结束;
S500:若全部根节点任务已经全部正常运行结束,则通过节点扫描器对各自根节点任务所属的所有后续任务进行监控和运行;
S600:若当前批次的所有根节点任务和其所属的后续任务均已全部正常运行结束,则进行后续批次的跑批。
除上述步骤外,还包括以下步骤:
初始化配置
配置任务元信息表以及任务依赖信息表;
任务元信息表需要配置的信息包括:任务名称、任务类型、所在资源池、任务具体命令、任务参数、任务优先级、来源系统、调度引擎IP以及任务状态,其中,任务状态分为等待状态、运行状态、完成状态以及错误状态;
任务依赖信息表需要配置所有任务的前置依赖任务,若为根节点则不需要配置,所有多个前置依赖需要配置多条依赖信息,以当前任务与当前任务的前置依赖做联合主键。
错误重调
若在根节点任务运行中出现错误或在根节点任务的后续任务运行中出现错误,则通过错误重调扫描器重新调用该运行错误的失败任务;
监控失败任务是否正常运行结束,若失败任务正常运行结束,则在检测所有任务完成后,完成当前批次的任务的跑批;若失败任务没有正常运行,则对失败任务的没有正常完成的次数进行统计,当次数达到上限,则异常结束当前批次任务的跑批。
在步骤S200中,还包括以下内容:
若任务实例化后存在N个根节点任务,则启动N个线程来分析N个根节点任务和其所属后续任务。在本实施例中,后续任务即为附属于根节点任务的第一级子节点任务、第二级子节点任务、第三级子节点任务等。
为节省资源池资源,若根节点任务或其所属后续任务不能正常运行结束,且重调后仍没发正常完成,则关闭存在该任务所属的线程。
对于批次之间的实时性的要求并没有特别高,所以设定全局扫描器的扫描间隔为5分钟。
实施例二
如图2所示,一种有向无环图的链式依赖分析系统,包括:全局扫描模块、实例化模块、运行模块、判断模块以及节点扫描模块。全局扫描模块用于通过全局扫描器检测当前批次的前序批次任务是否均已完成;实例化模块用于若前序批次任务均已完成,则将当前批次的所有任务实例化;运行模块用于运行所有根节点任务;判断模块用于判断所有根节点任务是否全部正常运行结束;节点扫描模块用于若全部根节点任务已经全部正常运行结束,则通过节点扫描器对各自根节点任务所属的所有后续任务进行监控和运行;若当前批次的所有根节点任务和其所属的后续任务均已全部正常运行结束,则进行后续批次的跑批。
除上述模块外,本系统还设有错误重调机制,其主要包括错误重调模块、监测模块以及次数模块。错误重调模块用于若在根节点任务运行中出现错误或在根节点任务的后续任务运行中出现错误,则通过错误重调扫描器重新调用该运行错误的失败任务;监测模块用于监控失败任务是否正常运行结束,若失败任务正常运行结束,则在检测所有任务完成后,完成当前批次的任务的跑批;次数模块用于若失败任务没有正常运行,则对失败任务的没有正常完成的次数进行统计,当次数达到上限,则异常结束当前批次任务的跑批。
在本实施例中,还包括初始化配置模块,初始化配置模块用于配置任务元信息表以及任务依赖信息表。其中,任务元信息表需要配置的信息包括:任务名称、任务类型、所在资源池、任务具体命令、任务参数、任务优先级、来源系统、调度引擎IP以及任务状态,其中,任务状态分为等待状态、运行状态、完成状态以及错误状态;任务依赖信息表需要配置所有任务(主要为附属于根节点任务的子节点任务)的前置依赖任务(子节点任务的前置依赖任务即为根节点任务),若为根节点任务则不需要配置,所有多个前置依赖需要配置多条依赖信息,以当前任务与当前任务的前置依赖做联合主键。
实例化模块包括线程单元,线程单元用于若任务实例化后存在N个根节点任务,则启动N个线程来分析N个根节点任务和其所属后续任务;同时,线程单元还用于若根节点任务或其所属后续任务不能正常运行结束,且重调后仍没发正常完成,则关闭存在该任务所属的线程。
对于批次之间的实时性的要求并没有特别高,所以设定全局扫描器的扫描间隔为5分钟。
本发明在服务器资源有限的情况下,对DAG(有向无环图)链式依赖的高效分析与任务执行的实时性,当前批次运行时,通过节点扫描器只对后续任务进行实时监控,其扫描作业较少,实时效率较高;在当前批次未到来时,全局扫描的扫描粒度可控,根据实际业务需求可做调节,减小服务器压力;错误重调机制可以保证临时资源不足时偶然错误不会影响整体任务的跑批。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步的详细说明,应当理解,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围。特别指出,对于本领域技术人员来说,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种有向无环图的链式依赖分析方法,其特征在于,包括以下步骤:
通过全局扫描器检测当前批次的前序批次任务是否均已完成;
若前序批次任务均已完成,则将当前批次的所有任务实例化;
运行所有根节点任务;
判断所有根节点任务是否全部正常运行结束;
若全部根节点任务已经全部正常运行结束,则通过节点扫描器对各自根节点任务所属的所有后续任务进行监控和运行;
若当前批次的所有根节点任务和其所属的后续任务均已全部正常运行结束,则进行后续批次的跑批。
2.根据权利要求1所述的有向无环图的链式依赖分析方法,其特征在于,还包括以下步骤:
若在根节点任务运行中出现错误或在根节点任务的后续任务运行中出现错误,则通过错误重调扫描器重新调用该运行错误的失败任务;
监控失败任务是否正常运行结束,若失败任务正常运行结束,则在检测所有任务完成后,完成当前批次的任务的跑批;若失败任务没有正常运行,则对失败任务的没有正常完成的次数进行统计,当次数达到上限,则异常结束当前批次任务的跑批。
3.根据权利要求1所述的有向无环图的链式依赖分析方法,其特征在于,还包括以下步骤:
若任务实例化后存在N个根节点任务,则启动N个线程来分析N个根节点任务和其所属后续任务。
4.根据权利要求3所述的有向无环图的链式依赖分析方法,其特征在于,若根节点任务或其所属后续任务不能正常运行结束,且重调后仍没发正常完成,则关闭存在该任务所属的线程。
5.根据权利要求1~4中任意一项所述的有向无环图的链式依赖分析方法,其特征在于,每一批次任务跑批的时间间隔为5分钟。
6.一种有向无环图的链式依赖分析系统,其特征在于,包括:
全局扫描模块,用于通过全局扫描器检测当前批次的前序批次任务是否均已完成;
实例化模块,用于若前序批次任务均已完成,则将当前批次的所有任务实例化;
运行模块,用于运行所有根节点任务;
判断模块,用于判断所有根节点任务是否全部正常运行结束;
节点扫描模块,用于若全部根节点任务已经全部正常运行结束,则通过节点扫描器对各自根节点任务所属的所有后续任务进行监控和运行;若当前批次的所有根节点任务和其所属的后续任务均已全部正常运行结束,则进行后续批次的跑批。
7.根据权利要求6所述的有向无环图的链式依赖分析系统,其特征在于,还包括:
错误重调模块,用于若在根节点任务运行中出现错误或在根节点任务的后续任务运行中出现错误,则通过错误重调扫描器重新调用该运行错误的失败任务;
监测模块,用于监控失败任务是否正常运行结束,若失败任务正常运行结束,则在检测所有任务完成后,完成当前批次的任务的跑批;
次数模块,用于若失败任务没有正常运行,则对失败任务的没有正常完成的次数进行统计,当次数达到上限,则异常结束当前批次任务的跑批。
8.根据权利要求6所述的有向无环图的链式依赖分析系统,其特征在于,还包括:
线程单元,用于若任务实例化后存在N个根节点任务,则启动N个线程来分析N个根节点任务和其所属后续任务。
9.根据权利要求8所述的有向无环图的链式依赖分析系统,其特征在于,线程单元还用于若根节点任务或其所属后续任务不能正常运行结束,且重调后仍没发正常完成,则关闭存在该任务所属的线程。
10.根据权利要求6~9中任意一项所述的有向无环图的链式依赖分析系统,其特征在于,每一批次任务跑批的时间间隔为5分钟。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910016214.0A CN109684229B (zh) | 2019-01-08 | 2019-01-08 | 有向无环图的链式依赖分析方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910016214.0A CN109684229B (zh) | 2019-01-08 | 2019-01-08 | 有向无环图的链式依赖分析方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109684229A true CN109684229A (zh) | 2019-04-26 |
CN109684229B CN109684229B (zh) | 2022-03-15 |
Family
ID=66192105
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910016214.0A Active CN109684229B (zh) | 2019-01-08 | 2019-01-08 | 有向无环图的链式依赖分析方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109684229B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112541836A (zh) * | 2020-12-10 | 2021-03-23 | 贵州电网有限责任公司 | 一种多能源系统数字孪生应用流程建模与部署方法及系统 |
WO2022095848A1 (zh) * | 2020-11-04 | 2022-05-12 | 北京字节跳动网络技术有限公司 | 基线监控方法、装置、可读介质及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102981904A (zh) * | 2011-09-02 | 2013-03-20 | 阿里巴巴集团控股有限公司 | 一种任务调度方法及系统 |
CN104965754A (zh) * | 2015-03-31 | 2015-10-07 | 腾讯科技(深圳)有限公司 | 任务调度方法及任务调度装置 |
CN107315834A (zh) * | 2017-07-12 | 2017-11-03 | 广东奡风科技股份有限公司 | 一种基于广度优先搜索算法的etl作业流程分析方法 |
CN108958920A (zh) * | 2018-07-13 | 2018-12-07 | 众安在线财产保险股份有限公司 | 一种分布式任务调度方法及系统 |
US20180365060A1 (en) * | 2017-04-19 | 2018-12-20 | International Business Machines Corporation | Leveraging directed acyclic graph (dag) information to group tasks for execution |
-
2019
- 2019-01-08 CN CN201910016214.0A patent/CN109684229B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102981904A (zh) * | 2011-09-02 | 2013-03-20 | 阿里巴巴集团控股有限公司 | 一种任务调度方法及系统 |
CN104965754A (zh) * | 2015-03-31 | 2015-10-07 | 腾讯科技(深圳)有限公司 | 任务调度方法及任务调度装置 |
US20180365060A1 (en) * | 2017-04-19 | 2018-12-20 | International Business Machines Corporation | Leveraging directed acyclic graph (dag) information to group tasks for execution |
CN107315834A (zh) * | 2017-07-12 | 2017-11-03 | 广东奡风科技股份有限公司 | 一种基于广度优先搜索算法的etl作业流程分析方法 |
CN108958920A (zh) * | 2018-07-13 | 2018-12-07 | 众安在线财产保险股份有限公司 | 一种分布式任务调度方法及系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022095848A1 (zh) * | 2020-11-04 | 2022-05-12 | 北京字节跳动网络技术有限公司 | 基线监控方法、装置、可读介质及电子设备 |
EP4141670A4 (en) * | 2020-11-04 | 2023-10-18 | Beijing Bytedance Network Technology Co., Ltd. | BASELINE MONITORING METHOD AND APPARATUS, READABLE MEDIUM AND ELECTRONIC DEVICE |
US11853792B2 (en) | 2020-11-04 | 2023-12-26 | Beijing Bytedance Network Technology Co., Ltd. | Baseline monitoring method and apparatus, readable medium, and electronic device |
CN112541836A (zh) * | 2020-12-10 | 2021-03-23 | 贵州电网有限责任公司 | 一种多能源系统数字孪生应用流程建模与部署方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109684229B (zh) | 2022-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107992362B (zh) | 自动化性能测试的方法、装置及系统 | |
CN109684229A (zh) | 有向无环图的链式依赖分析方法及系统 | |
CN103678726A (zh) | 一种数据补采方法和数据补采系统 | |
CN112506799A (zh) | 业务异常定位方法及装置、电子设备、介质、产品 | |
CN114422386B (zh) | 一种微服务网关的监测方法及装置 | |
CN107204868B (zh) | 一种任务运行监控信息获取方法和装置 | |
CN109104304B (zh) | 一种分布式实时故障处理方法 | |
CN112541746A (zh) | 一种全栈自动化编排方法及系统 | |
CN105589804A (zh) | 一种基于流程驱动的测试自动化方法以及测试自动化系统 | |
CN115056234B (zh) | 基于事件驱动和无限状态机的rpa控制器调度方法及系统 | |
Liu et al. | An empirical study on underlying correlations between runtime performance deficiencies and “bad smells” of microservice systems | |
CN111130955B (zh) | 基于互联网信贷系统的分布式链路监控方法 | |
CN107729184A (zh) | 一种系统组件服务自愈方法 | |
CN115314358A (zh) | 一种家宽网络的哑网元故障监控方法和装置 | |
CN113342650A (zh) | 分布式系统的混沌工程方法及装置 | |
CN113010277A (zh) | 一种基于自动化运维的多条件触发自动作业系统和方法 | |
CN110764909A (zh) | 一种用于云计算平台的存储设备的负载均衡的方法和系统 | |
CN110928525A (zh) | 一种用于业务流开发工具的日志自动生成方法和系统 | |
CN116450305B (zh) | 基于分布式任务调度的soar平台组件执行方法与装置 | |
KR101073495B1 (ko) | 에스오에이 서비스의 동적 특화 방법 | |
CN114356643B (zh) | 一种遥感卫星处理系统中自动发现任务失败和恢复方法 | |
WO2020255323A1 (ja) | 監視保守装置、監視保守方法及び監視保守プログラム | |
CN117764533A (zh) | 一种基于rpa的数字员工群体协作方法 | |
CN107665163A (zh) | 自动化数据回溯的方法与系统 | |
Dou et al. | Big Data Oriented Light-Load Embedded Performance Modeling |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right |
Denomination of invention: Chain Dependency Analysis Method and System for Directed Acyclic Graphs Effective date of registration: 20221130 Granted publication date: 20220315 Pledgee: Hangzhou branch of Bank of Nanjing Co.,Ltd. Pledgor: HANGZHOU YATUO INFORMATION TECHNOLOGY Co.,Ltd. Registration number: Y2022330003317 |