System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及多线程管理,尤其涉及基于任务编排的多线程管理方法及其相关设备。
技术介绍
1、应用系统开发过程中,存在比较多的业务场景,需要使用多线程并发处理,以提高执行效率,降低接口响应时间,提高吞吐量。
2、目前对于实现业务多线程并发处理,以传统编码的方式为主,在不同的业务模块中进行线程控制代码的编写,在每个业务模块写入线程间交互(读写)控制、线程数并发控制以及线程执行结果汇聚处理等线程控制代码。
3、然而,由于通过传统编码方式实现业务多线程并发处理,需要开发人员将业务代码与线程控制代码交织在业务模块内,而一个系统往往存在多个业务模块,导致开发人员需要在每个模块中重复编写与业务无关的线程控制代码,使得业务模块内的代码冗余过高,代码编写效率低下,且不同业务模块内的业务代码与线程控制代码会存在差异,开发人员需要针对不同业务模块定制相应线程控制代码,导致线程控制代码的复用性差。
技术实现思路
1、本申请实施例的目的在于提出一种基于任务编排的多线程管理方法、装置、计算机设备及存储介质,以解决传统多线程技术的应用复用性差以及编码效率低下的问题。
2、为了解决上述技术问题,本申请实施例提供一种基于任务编排的多线程管理方法,采用了如下所述的技术方案:
3、获取汇聚节点以及节点依赖关系;
4、基于所述节点依赖关系对所述汇聚节点进行节点编排处理,得到任务节点,其中,所述任务节点包括依赖型任务节点以及非依赖型任务节点,所述依赖型任务节点为所述非
5、将预设的初始处理参数注入所述非依赖型任务节点中,通过线程池对所述非依赖型任务节点的并发任务进行业务处理,得到第一任务结果集,并将所述第一任务结果集上传至任务上下文;
6、通过参数传递或所述任务上下文共享参数的方式,将所述第一任务结果集传递到所述依赖型任务节点中,通过所述线程池对所述依赖型任务节点的并发任务进行所述业务处理,得到第二任务结果集。
7、进一步的,所述基于所述节点依赖关系对所述汇聚节点进行节点编排处理,得到任务节点的步骤,具体包括:
8、基于所述节点依赖关系构建顺序依赖树,其中,所述汇聚节点为所述顺序依赖数的根节点;
9、将所述顺序依赖树的叶子节点确定为非依赖型任务节点;
10、将所述顺序依赖树的父节点确定为依赖型任务节点;
11、在各个任务节点中写入预设处理代码,所述预设处理代码包括业务处理代码以及异常处理代码,所述各个任务节点间的预设处理代码不一致。
12、进一步的,所述任务节点包括输入参数以及所述预设处理代码,所述将预设的初始处理参数注入所述非依赖型任务节点中,通过线程池对所述非依赖型任务节点的并发任务进行业务处理,得到第一任务结果集的步骤,具体包括:
13、基于所述预设的初始处理参数确定所述非依赖型任务节点内的并发任务数量,将所述预设的初始处理参数作为所述输入参数;
14、若所述并发任务数量大于所述线程池预设的线程数,则按照顺序排序将多余的并发任务放入任务等待队列中,等待所述线程池内的存在空闲再进行所述业务处理;
15、若所述并发任务数量小于所述线程池预设的线程数,则通过所述非依赖型任务节点的业务处理代码结合所述输入参数对所述非依赖型任务节点内的全部并发任务进行处理,得到所述第一任务结果参数集;
16、将所述第一任务结果参数集按照参数合并规则进行参数合并,得到所述第一任务结果集,并将所述第一任务结果集上传至任务上下文。
17、进一步的,所述通过参数传递或所述任务上下文共享参数的方式,将所述第一任务结果集传递到所述依赖型任务节点中,通过所述线程池对所述依赖型任务节点的并发任务进行所述业务处理,得到第二任务结果集的步骤,具体包括:
18、将所述第一任务结果集按照数据类型、数据来源以及数据信息的数据形式进行封装,得到消息参数对象;
19、将所述消息参数对象作为所述依赖型任务节点的输入参数,通过所述参数传递进入到所述依赖型任务节点中,通过所述线程池对所述依赖型任务节点的并发任务进行所述业务处理,得到所述第二任务结果集;或
20、通过所述任务上下文进行共享数据集处理,将所述第一任务结果集载入到所述依赖型任务节点中,通过所述线程池对所述依赖型任务节点的并发任务进行所述业务处理,得到所述第二任务结果集。
21、进一步的,所述通过所述任务上下文进行共享数据集处理,将所述将所述第一任务结果集载入到所述依赖型任务节点的步骤,具体包括:
22、将所述依赖型任务节点的上级任务节点的所述数据来源作为目标标识;
23、基于所述目标标识从所述任务上下文进行匹配处理,得到所述第一任务结果集;
24、将所述第一任务结果集载入到所述依赖型任务节点。
25、进一步的,在所述对所述依赖型任务节点的并发任务进行所述业务处理,得到所述第二任务结果集的步骤之后,还包括:
26、基于所述节点依赖关系判断所述依赖型任务节点是否为汇聚节点;
27、若所述依赖型任务节点是所述汇聚节点,则将所述第二任务结果集直接输出;
28、若所述依赖型任务节点不是所述汇聚节点,则将所述第二任务结果集上传至所述任务上下文,同时将所述第二任务结果集作为输入参数传递到下级任务节点。
29、进一步的,所述对所述任务节点的并发任务进行所述业务处理的步骤,具体还包括:
30、若当前任务节点执行所述业务处理代码时出现异常,则执行所述异常处理代码,所述异常处理代码包括所述忽略策略代码、中断策略代码以及重试策略代码;
31、若所述异常处理代码为忽略策略代码,则所述忽略所述当前任务节点中的任务异常;
32、若所述异常处理代码为中断策略代码,则所述停止执行全部任务节点;
33、若所述异常处理代码为重试策略代码,则立即重新执行所述当前任务节点。
34、为了解决上述技术问题,本申请实施例还提供一种基于任务编排的多线程管理装置,采用了如下所述的技术方案:
35、获取模块,用于获取汇聚节点以及节点依赖关系;
36、第一处理模块,用于基于所述节点依赖关系对所述汇聚节点进行节点编排处理,得到任务节点,其中,所述任务节点包括依赖型任务节点以及非依赖型任务节点,所述依赖型任务节点为所述非依赖型任务节点的下级任务节点,所述任务节点内包含有多个并发任务;
37、第二处理模块,用于将预设的初始处理参数注入所述非依赖型任务节点中,通过线程池对所述非依赖型任务节点的并发任务进行业务处理,得到第一任务结果集,并将所述第一任务结果集上传至任务上下文;
38、第三处理模块,用于通过参数传递或所述任务上下文共享参数的方式,将所述第一任务结果集传递到所述依赖型任务节点中,本文档来自技高网...
【技术保护点】
1.一种基于任务编排的多线程管理方法,其特征在于,包括下述步骤:
2.根据权利要求1所述的基于任务编排的多线程管理方法,其特征在于,所述基于所述节点依赖关系对所述汇聚节点进行节点编排处理,得到任务节点的步骤,具体包括:
3.根据权利要求1所述的基于任务编排的多线程管理方法,其特征在于,所述任务节点包括输入参数以及所述预设处理代码,所述将预设的初始处理参数注入所述非依赖型任务节点中,通过线程池对所述非依赖型任务节点的并发任务进行业务处理,得到第一任务结果集,并将所述第一任务结果集上传至任务上下文的步骤,具体包括:
4.根据权利要求3所述的基于任务编排的多线程管理方法,其特征在于,所述通过参数传递或所述任务上下文共享参数的方式,将所述第一任务结果集传递到所述依赖型任务节点中,通过所述线程池对所述依赖型任务节点的并发任务进行所述业务处理,得到第二任务结果集的步骤,具体包括:
5.根据权利要求4所述的基于任务编排的多线程管理方法,其特征在于,所述通过所述任务上下文进行共享数据集处理,将所述第一任务结果集载入到所述依赖型任务节点中的步骤,具体
6.根据权利要求1所述的基于任务编排的多线程管理方法,其特征在于,在所述对所述依赖型任务节点的并发任务进行所述业务处理,得到所述第二任务结果集的步骤之后,还包括:
7.根据权利要求2所述的基于任务编排的多线程管理方法,其特征在于,所述对所述任务节点的并发任务进行所述业务处理的步骤,具体还包括:
8.一种基于任务编排的多线程管理装置,其特征在于,包括:
9.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现如权利要求1至7中任一项所述的基于任务编排的多线程管理方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如权利要求1至7中任一项所述的基于任务编排的多线程管理方法的步骤。
...【技术特征摘要】
1.一种基于任务编排的多线程管理方法,其特征在于,包括下述步骤:
2.根据权利要求1所述的基于任务编排的多线程管理方法,其特征在于,所述基于所述节点依赖关系对所述汇聚节点进行节点编排处理,得到任务节点的步骤,具体包括:
3.根据权利要求1所述的基于任务编排的多线程管理方法,其特征在于,所述任务节点包括输入参数以及所述预设处理代码,所述将预设的初始处理参数注入所述非依赖型任务节点中,通过线程池对所述非依赖型任务节点的并发任务进行业务处理,得到第一任务结果集,并将所述第一任务结果集上传至任务上下文的步骤,具体包括:
4.根据权利要求3所述的基于任务编排的多线程管理方法,其特征在于,所述通过参数传递或所述任务上下文共享参数的方式,将所述第一任务结果集传递到所述依赖型任务节点中,通过所述线程池对所述依赖型任务节点的并发任务进行所述业务处理,得到第二任务结果集的步骤,具体包括:
5.根据权利要求4所述的基于任务编排的多线程管理方法,其特征在于,...
【专利技术属性】
技术研发人员:李康贵,
申请(专利权)人:远光软件股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。