System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本公开涉及数据开发,尤其涉及一种支持依赖编排的任务依赖调度方法、系统和电子设备。
技术介绍
1、工作流支持的任务节点类型包括:sql/python多种语言开发节点、file类型的云端数据存储获取节点、数据质量检查节点以及可扩展的java插件化节点,并为节点提供工作流管理能力。
2、如附图1所示的universe(platform)数据开发平台的技术架构图,能够在平台上进行工作流和数据流开发。前端用户进行工作管理相应的工作流(比如财务对接数据、会计计算数据、业务管理数据、单店单品管理动销数据),可以由部署于后台的universe(platform)数据开发平台进行管理和展示,前端用户能够登录后台,进入universe(platform)数据开发平台,通过基础服务模块,实现对工作流的任务调度、数据管理等等。
3、而在具有依赖任务的调度工作中,某个编排工作流在执行时,需要判断是否存储依赖任务,若有,则需要判断依赖任务是否已经执行。若是缺乏对依赖任务的执行监控,则可能造成编排工作流的中断,编排废止。
4、虽然在任务调度中,具有依赖调度功能,但是还是需要开发人员主动介入对某个工作流节点(工作流的任务节点)的依赖任务的判断,当发现某个工作流节点存在依赖任务,则需要对该节点上的依赖任务进行调用并执行。人工干预依赖任务的方式,显得比较延迟,增加了开发周期。
5、因此,良好的任务依赖调度流程,也是保证一个编排工作流的顺畅条件。
技术实现思路
1、为了解
2、本申请一方面,提出一种支持依赖编排的任务依赖调度方法,包括如下步骤:
3、基于maven项目目录结构编排本次工作流的任务节点,记录并保存各个所述任务节点在所述maven项目目录结构上的节点位置id至后台;
4、后台为各个所述任务节点配置对应的子任务,并标记出存在依赖任务的所述子任务所在的所述任务节点的节点位置id;
5、编排工作流之时,由各个所述任务节点实时上报各自的任务状态至后台,后台根据所述任务状态,判断当前所述任务节点的节点位置id是否具备依赖任务的标记:
6、若具备依赖任务的标记,则调度执行所述依赖任务;
7、反之,则执行下一个子任务。
8、作为本申请的一可选实施方案,可选地,基于maven项目目录结构编排本次工作流的任务节点,记录并保存各个所述任务节点在所述maven项目目录结构上的节点位置id至后台,包括:
9、解析本次编排任务,确定本次编排任务的各个任务根节点;
10、根据工作流的任务流程,确定子任务的父子关系,并为所述任务根节点设定对应的父子任务节点;
11、根据任务根节点以及所关联的父子任务节点,基于maven项目目录结构编排本次工作流的任务节点,并记录下各个任务根节点以及所关联的父子任务节点的节点位置id;
12、将各个所述节点位置id上报至后台。
13、作为本申请的一可选实施方案,可选地,后台为各个所述任务节点配置对应的子任务,并标记出存在依赖任务的所述子任务所在的所述任务节点的节点位置id,包括:
14、按照各个所述任务节点的节点位置id,遍历所述maven项目目录结构中的各个所述任务节点;
15、根据所述任务节点的属性,为各个所述任务节点配置对应的子任务,并将所述子任务与对应的所述节点位置id进行绑定;
16、遍历绑定在所述节点位置id之下的所述子任务,并基于文本识别算法判断各个所述任务节点的子任务中,是否存在关联的依赖任务:
17、若存在关联的依赖任务,则对存在依赖任务的所述子任务所在的所述任务节点的节点位置id进行标记,打上具备依赖任务的标记;
18、反之放弃。
19、作为本申请的一可选实施方案,可选地,后台为各个所述任务节点配置对应的子任务,并标记出存在依赖任务的所述子任务所在的所述任务节点的节点位置id,还包括:
20、根据任务优先级的需求,对存在依赖任务的所述子任务,分别设置所述子任务和与之关联的所述依赖任务的任务优先级:d1和d2,并将设定的所述任务优先级保存在后台。
21、作为本申请的一可选实施方案,可选地,在后台根据所述任务状态,判断当前所述任务节点的节点位置id具备依赖任务的标记之后,还包括:
22、判断当前所述任务节点的所述子任务是否具备设置的任务优先级:
23、若当前所述任务节点的所述子任务具备设置的任务优先级,则进一步判断所述子任务和与之关联的所述依赖任务的任务优先级:d1和d2的关系:
24、若:
25、d1≤d2,
26、则优先执行所述子任务;
27、若:
28、d1>d2,
29、则优先执行所述依赖任务;
30、若当前所述任务节点的所述子任务不具备设置的任务优先级,则优先执行所述依赖任务,再执行所述子任务。
31、赖调度的编排功能,提供调度优先级、失败重试等复杂调度策略配置。
32、任务依赖调度是一种算法,用于确定任务的执行顺序,以避免任务之间的冲突和保证任务的正确执行。
33、本申请另一方面,提出一种实现所述一种支持依赖编排的任务依赖调度方法的系统,包括:
34、任务节点配置模块,用于基于maven项目目录结构编排本次工作流的任务节点,记录并保存各个所述任务节点在所述maven项目目录结构上的节点位置id至后台;
35、节点标记模块,用于后台为各个所述任务节点配置对应的子任务,并标记出存在依赖任务的所述子任务所在的所述任务节点的节点位置id;
36、任务调度模块,用于编排工作流之时,由各个所述任务节点实时上报各自的任务状态至后台,后台根据所述任务状态,判断当前所述任务节点的节点位置id是否具备依赖任务的标记:
37、若具备依赖任务的标记,则调度执行所述依赖任务;
38、反之,则执行下一个子任务。
39、本申请另一方面,还提出一种电子设备,包括:
40、处理器;
41、用于存储处理器可执行指令的存储器;
42、其中,所述处理器被配置为执行所述可执行指令时实现所述的一种支持依赖编排的任务依赖调度方法。
43、本专利技术的技术效果:
44、本申请通过maven项目目录结构进行工作流编排,通过基于maven项目目录结构编排的任务节点和任务配置,能够让后台开发人员清晰知道哪些任务节点具有依赖任务的标记,同时能够根据标记的id,追踪存在依赖任务的所述子任务所在的所述任务节点的节点位置id,按照工作流自动追踪该任务节点的依赖节点进行依赖任务的执行,因此,能够及时对存有依赖任务的依赖节点进行监控追踪和任务执行,本文档来自技高网...
【技术保护点】
1.一种支持依赖编排的任务依赖调度方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的一种支持依赖编排的任务依赖调度方法,其特征在于,基于Maven项目目录结构编排本次工作流的任务节点,记录并保存各个所述任务节点在所述Maven项目目录结构上的节点位置ID至后台,包括:
3.根据权利要求2所述的一种支持依赖编排的任务依赖调度方法,其特征在于,后台为各个所述任务节点配置对应的子任务,并标记出存在依赖任务的所述子任务所在的所述任务节点的节点位置ID,包括:
4.根据权利要求1所述的一种支持依赖编排的任务依赖调度方法,其特征在于,基于Maven项目目录结构编排本次工作流的任务节点,记录并保存各个所述任务节点在所述Maven项目目录结构上的节点位置ID至后台,包括:
5.根据权利要求1所述的一种支持依赖编排的任务依赖调度方法,其特征在于,后台为各个所述任务节点配置对应的子任务,并标记出存在依赖任务的所述子任务所在的所述任务节点的节点位置ID,包括:
6.根据权利要求5所述的一种支持依赖编排的任务依赖调度方法,其特征在于,后
7.根据权利要求6所述的一种支持依赖编排的任务依赖调度方法,其特征在于,在后台根据所述任务状态,判断当前所述任务节点的节点位置ID具备依赖任务的标记之后,还包括:
8.实现权利要求1-7中任一项所述一种支持依赖编排的任务依赖调度方法的系统,其特征在于,包括:
9.电子设备,其特征在于,包括:
...【技术特征摘要】
1.一种支持依赖编排的任务依赖调度方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的一种支持依赖编排的任务依赖调度方法,其特征在于,基于maven项目目录结构编排本次工作流的任务节点,记录并保存各个所述任务节点在所述maven项目目录结构上的节点位置id至后台,包括:
3.根据权利要求2所述的一种支持依赖编排的任务依赖调度方法,其特征在于,后台为各个所述任务节点配置对应的子任务,并标记出存在依赖任务的所述子任务所在的所述任务节点的节点位置id,包括:
4.根据权利要求1所述的一种支持依赖编排的任务依赖调度方法,其特征在于,基于maven项目目录结构编排本次工作流的任务节点,记录并保存各个所述任务节点在所述maven项目目录结构上的节点位置id至后台,包括:
<...【专利技术属性】
技术研发人员:张进,曹银通,李迪砺,苏春园,
申请(专利权)人:杭州观远数据有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。