一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于拓扑排序的任务编排方法、装置、设备及存储介质与流程

2021-10-24 05:36:00 来源:中国专利 TAG:拓扑 数据处理 编排 排序 装置


1.本发明涉及数据处理技术领域,具体为一种基于拓扑排序的任务编排方法、装置、设备及存储介质。


背景技术:

2.使用计算机处理跑批业务,早在计算机诞生之初,便有相关的处理,早期计算机没有现代计算机的输入和输出设备,只能通过在纸带上打孔的方式进行输入输出,一笔一笔地处理数据,需要不停地打孔,读孔,既费时又费力。为了提高效率,渐渐形成了将要处理的数据积攒成“批”,在指定时间一次性进行处理,极大地减少了频繁打孔读孔的操作,提高了效率,这种处理方法,被称为批处理。现代计算机中跑批已经是一种很常见的处理业务的方式,例如:银行的计算机每天都会进行一次跑批,银行将所有分行还有办事处的信息录入到总的计算机内,进行处理、运算,再将第二天需要做的事情发布出去,比如:打印卡函,答应账单等。
3.因为跑批业务中存在大量数据需要在预期的时间内执行完毕,这些数据需要有数据视图来进行运行情况的监控,由于现有任务编排方法不能体现跑批业务中各任务之间存在的依赖关系,因此现有的数据视图对跑批业务中各任务之间的关联体现较差,并且在跑批过程中,由于数据量较大,并发程度较高,所以出错异常的概率也会提高,会影响跑批业务的运行。


技术实现要素:

4.本发明的目的之一在于提供一种基于拓扑排序的任务编排方法、装置、设备及存储介质,以拓扑排序将跑批业务中的各业务以及其子任务进行串联,控制跑批业务运行的过程和可视化操作,降低出错异常的概率,并通过消息机制保证业务处理进度和异常情况的实时响应,降低维护成本。
5.本发明提供的基础方案一:基于拓扑排序的任务编排方法,包括如下内容:
6.启动跑批业务,并进行统一处理;所述跑批业务中包含若干业务,每个业务中包含若干子任务;
7.所述统一处理包括:
8.构建跑批业务的拓扑结构;
9.根据拓扑结构,处理业务:当一个业务正常完成后,通过消息推送机制进行进度的更新,根据拓扑结构,判断是否存在依赖于该业务的下一业务,若存在,则触发该下一业务启动,直至完成跑批;在处理一个业务时,当一个业务中的任一子任务完成后,通过消息推送机制进行进度的更新,并根据拓扑结构,判断是否存在依赖该子任务的下一子任务,若存在,则触发该下一子任务启动;
10.在统一处理过程中,若发生异常,则通过消息推送机制进行进度更新,并进行人工主动重试;若人工主动重试失败,则通过告警机制进行告警。
11.基础方案一的有益效果:1、拓扑结构作为图结构,建立业务以及其子任务之间的依赖关系,将跑批业务中的各业务以及各业务中的子任务进行串联,完成整个跑批业务的串联,便于用户控制跑批业务进行的过程,以及可视化操作,特别是完成整个跑批业务的串联后,即时是海量的数据,在数据视图也可以清楚的了解到各业务以及各业务中的子任务之间的关系。
12.2、在统一处理过程中,若发生异常,则通过消息推送机制进行进度更新,并进行人工主动重试;消息推送机制不仅更新业务以及其子任务的进行情况,也在处理过程中发生异常的时候进行进度更新,保证业务处理进度以及异常情况的实时响应,以便于用户及时从处理异常,防止异常影响业务处理进度,造成经济损失。并且通过消息推送机制进行进度更新,并进行人工主动重试以后,若人工主动重试失败,还会通过告警机制进行告警,因为跑批业务基本大多数情况下都是在凌晨进行处理,某些关键流程需要保证其及时性,虽然异常发生以后会进行人工主动重试,但是如果人工主动重试失败以后,需要及时的将异常告知值班人员,让值班人员及时处理,以避免由于时效性问题造成更大的经济损失。
13.3、由于在进行处理业务时,采用了拓扑排序的手段,完成整个跑批业务的串联,在数据视图也可以清楚的了解到各业务以及各业务中的子任务之间的关系,在处理过程中,如果发生异常,用户可以根据可视化的各业务以及各业务中的子任务之间的关系,快速的定位到异常的业务或子任务,有利于降低维护的时间成本。
14.进一步,所述统一处理包括两种处理模式:自动模式和人工模式。
15.有益效果:统一处理包括两种处理模式:自动模式和人工模式,两种模式可以结合使用从而可以灵活组合,提高处理效率。
16.进一步,所述构建跑批业务的拓扑结构是基于跑批业务的邻接表数据结构进行构建拓扑结构,且拓扑结构中每一节点为跑批业务中一业务或者业务中一子任务。
17.有益效果:海量数据基本都是采用数据库进行存储,数据库中又常采用邻接表,因此,构建跑批业务的拓扑结构时,基于跑批业务的邻接表数据结构进行构建拓扑结构,方便快捷,且拓扑结构中每一节点为跑批业务中一业务或者业务中一子任务,既能体现跑批业务中各业务之间的关系也能体现各业务中各子任务之间的关系。并且拓扑结构中每一节点为跑批业务中一业务或者业务中一子任务,当一个业务中只有一个子任务时,那个该业务和该子任务就是为一个节点。
18.进一步,所述根据拓扑结构,处理业务,具体为:
19.根据拓扑结构获取每个节点的入度;
20.查询现有业务以及其子任务的执行情况,更新拓扑结构,并将入度为零的节点,判定为可执行的业务实例,通过消息推送机制进行进度的更新;
21.根据业务实例的数据情况,进行子任务的数据的捞取和消息的分发,通过缓存机制进行统计数据的原子更新;
22.完成消息的分发后,开启守护线程,进行进度的维护管理;
23.若收到子任务消费的消息,则对子任务进行处理,并通过消息推送机制更新统计数据;
24.若守护线程获取到业务已经完成的消息,根据拓扑结构,判断是否存在依赖于该业务的下一业务,若存在,则通过消息推送机制触发该下一业务启动,直至完成跑批。
25.有益效果:通过上述方法可以保证跑批业务按拓扑结构,逐一完成业务,各业务中的子任务全部完成后,才进行下一业务,保证业务完成的完整度。
26.进一步,所述构建跑批业务的拓扑结构前,还包括在统一消息处理入口采用分布式锁机制,所述统一消息入口为所有消息进行分发均经过的入口。
27.有益效果:构建跑批业务的拓扑结构前,还包括在统一消息处理入口采用分布式锁机制,从而保证一个业务或一个子任务只被一个线程执行。
28.本发明提供基础方案二:基于拓扑排序的任务编排装置,包括:跑批任务触发模块、控制模块、数据处理模块、预警模块和管理模块;
29.跑批任务触发模块,用于启动跑批业务;
30.所述控制模块,用于进行进度更新;
31.所述数据处理模块,用于对业务以及其子任务进行统一处理,包括:
32.构建跑批业务的拓扑结构;
33.根据拓扑结构,处理业务,其中当一个业务正常完成后,通过消息推送机制触发控制模块进行进度更新和管理模块进行依赖判断;在处理一个业务时,当一个业务中的任一子任务完成后,通过消息推送机制触发控制模块进行进度的更新和管理模块进行依赖判断;若发生异常,则通过消息推送机制触发控制模块进行进度更新,且数据处理模块进行人工主动重试;若人工主动重试失败,则通过告警机制触发预警模块进行告警;
34.所述管理模块,用于根据拓扑结构,判断是否存在依赖于该业务的下一业务,若存在,则触发数据处理模块启动该下一业务的处理,直至完成跑批;还用于根据拓扑结构,判断是否存在依赖该子任务的下一子任务,若存在,则触发该下一子任务启动;
35.所述预警模块,用于进行告警。
36.基础方案二的有益效果:1、数据处理模块构建跑批业务的拓扑结构,拓扑结构作为图结构,建立业务以及其子任务之间的依赖关系,将跑批业务中的各业务以及各业务中的子任务进行串联,完成整个跑批业务的串联,便于用户控制跑批业务进行的过程,以及可视化操作,特别是完成整个跑批业务的串联后,即时是海量的数据,在数据视图也可以清楚的了解到各业务以及各业务中的子任务之间的关系。
37.2、数据模块在统一处理过程中,无论处理是否正常完成都会通过消息推送机制触发控制模块进行进度的更新,并且异常时会触发预警模块进行告警,保证业务处理进度以及异常情况的实时响应,以便于用户及时从处理异常,防止异常影响业务处理进度,造成经济损失。
38.3、由于数据处理模块在进行处理业务时,采用了拓扑排序的手段,完成整个跑批业务的串联,在数据视图也可以清楚的了解到各业务以及各业务中的子任务之间的关系,在处理过程中,如果发生异常,用户可以根据可视化的各业务以及各业务中的子任务之间的关系,快速的定位到异常的业务或子任务,有利于降低维护的时间成本。
39.进一步,所述统一处理包括两种处理模式:自动模式和人工模式。
40.有益效果:统一处理包括两种处理模式:自动模式和人工模式,两种模式可以结合使用从而可以灵活组合,提高处理效率。
41.进一步,所述数据处理模块包括:拓扑结构构建子模块、获取子模块、子任务获取子模块、处理子模块、监控子模块和统一消息处理入口;
42.拓扑结构构建子模块,用于基于跑批业务的邻接表数据结构进行构建拓扑结构,其中拓扑结构中每一节点为跑批业务中一业务或者业务中一子任务;
43.获取子模块,用于根据拓扑结构获取每个节点的入度;
44.管理模块,还用于查询现有业务以及其子任务的执行情况,更新拓扑结构,并将入度为零的节点,判定为可执行的业务实例,通过消息推送机制触发控制模块进行进度更新;
45.子任务获取子模块,用于根据业务实例的数据情况,进行子任务的数据的捞取和消息的分发,触发统计模块通过缓存机制进行统计数据的原子更新;且完成消息的分发后,开启守护线程,进行进度的维护管理;还用于收到子任务消费的消息后,对子任务进行处理,并通过消息推送机制触发统计模块更新统计数据;
46.处理子模块,还用于若守护线程获取到业务已经完成的消息,通过消息推送机制触发管理模块进行依赖判断;
47.监控子模块,用于监控是否发生异常,若发生则触发预警模块进行告警;
48.统一消息处理入口采用分布式锁机制,为所有消息进行分发均经过的入口。
49.有益效果:各模块和各子模块之间协助工作保证跑批业务按拓扑结构,逐一完成业务,各业务中的子任务全部完成后,才进行下一业务,保证业务完成的完整度。
50.本发明提供基础方案三:基于拓扑排序的任务编排设备,包括处理器和存储器,所述处理器和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行任一项上述基于拓扑排序的任务编排方法的步骤。
51.基础方案三的有益效果:本设备采用上述基于拓扑排序的任务编排方法,以拓扑排序将跑批业务中的各业务以及其子任务进行串联,控制跑批业务运行的过程和可视化操作,降低出错异常的概率,并通过消息机制保证业务处理进度和异常情况的实时响应,降低维护成本。
52.本发明提供基础方案四:基于拓扑排序的任务编排存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现任一项上述基于拓扑排序的任务编排方法的步骤。
53.基础方案四的有益效果:基于拓扑排序的任务编排存储介质,存储介质上存储有计算机程序,计算机程序被处理器执行时实现任一项上述基于拓扑排序的任务编排方法的步骤,以便于基于拓扑排序的任务编排方法的应用。
附图说明
54.图1为本发明基于拓扑排序的任务编排方法实施例的流程图;
55.图2为本发明基于拓扑排序的任务编排装置实施例的逻辑框图。
具体实施方式
56.下面通过具体实施方式进一步详细说明:
57.实施例基本如附图1所示:基于拓扑排序的任务编排方法,应用于分布式系统中,包括如下内容:
58.启动跑批业务,并进行统一处理,统一处理包括两种处理模式:自动模式和人工模
式,两种模式可以结合使用从而可以灵活组合,提高处理效率;其中跑批业务中包含若干业务,每个业务中包含若干子任务,业务以及其子任务包含的数据存储在数据库中;
59.统一处理包括:
60.统一消息处理入口为所有消息进行分发均经过的入口,在统一消息处理入口采用分布式锁机制,从而保证一个业务只被一个线程执行,若一个业务中包含多个子任务,子任务中包含海量数据,则可设置若干线程对数据进行处理,最后进行汇总,从而使整个业务最终只被一个线程执行,防止业务、子任务或者数据被反复执行。
61.基于跑批业务的邻接表数据结构进行构建跑批业务的拓扑结构,拓扑结构中每一节点为跑批业务中一业务或者业务中一子任务,当一个业务中只有一个子任务时,那个该业务和该子任务就是为一个节点,且拓扑结构无特殊的设定结构,拓扑中的节点根据前置节点的依赖关系进行判断自身是否可触发;
62.根据拓扑结构,处理业务:当一个业务正常完成后,通过消息推送机制进行进度的更新,根据拓扑结构,判断是否存在依赖于该业务的下一业务,若存在,则触发该下一业务启动,直至完成跑批;在处理一个业务时,当一个业务中的任一子任务完成后,通过消息推送机制进行进度的更新,并根据拓扑结构,判断是否存在依赖该子任务的下一子任务,若存在,则触发该下一子任务启动;具体为:
63.根据拓扑结构获取每个节点的入度;
64.查询现有业务以及其子任务的执行情况,即本次跑批任务各节点的执行情况;更新拓扑结构,并将入度为零的节点,判定为可执行的业务实例,通过消息推送机制进行进度的更新;其中入度为是任务进行时发生改变的动态值,如:一个节点a,前置节点有b和c,a的触发条件为b和c共同执行完成后触发,在任务开始的时候a的入度就是2,b完成后a的入度减1,c完成后a的入度再减1,此时a的入度变为0则表示可执行。消息推送机制就将包含对应信息的消息发送给实际的各类模块。
65.根据业务实例的数据情况,进行子任务的数据的捞取和子任务消费的消息的分发,通过缓存机制进行统计数据的原子更新;此处业务实例的数据情况中数据为一个业务的初始化数据,也就是对初始化数据基于数据提供的类型、任务名称等信息进行前置处理;统计数据是基于缓存机制的,初始化子任务将数据总数统计到缓存中,根据处理子任务批次号处理完一次子任务数据对其进行递减操作,当数据减少为0则子任务需要处理的数据全部完成;原子更新指一批数据一起更新成功才算成功,如果出现某一条数据失败则整个操作失败,以此防止重复统计、漏统计等现象的出现。
66.完成消息的分发后,开启守护线程,进行进度的维护管理;
67.若收到子任务消费的消息,则对子任务进行处理,并通过消息推送机制更新统计数据;统计数据包括数据分发到各节点的处理情况,包括处理主机信息、处理任务名称、处理状态和错误信息等;具体为:收到子任务消费的信息,则将捞取的子任务的数据逐条分发到对应的子任务,子任务的执行需要有入参条件来进行处理,当分发的数据处理完成一条则计数减1,直到最终减少为0则表示分发任务为全部执行结束。
68.若守护线程获取到业务已经完成的消息,则根据拓扑结构,判断是否存在依赖于该业务的下一业务,若存在,则通过消息推送机制触发该下一业务启动,直至完成跑批。
69.在统一处理过程中,若发生异常,则通过消息推送机制进行进度更新,并进行人工
主动重试;若人工主动重试失败,则通过告警机制进行告警;其中常见的异常包括:数据库无法访问,网络访问受到限制,读取本地文件无权限等。其中告警机制是基于业务要求规则进行设定,如设定告警机制为预设时间内未完成跑批任务则进行告警,告警可以通过钉钉或智能语音的外呼,让值班人员及时发现异常,以便于及时处理,防止影响第二天的业务。
70.本实施例还提供一种基于拓扑排序的任务编排设备,包括处理器和存储器,所述处理器和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行任一项上述基于拓扑排序的任务编排方法的步骤。
71.上述基于拓扑排序的任务编排方法如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过程序来指令相关的硬件来完成,程序可存储于一可读存储介质中,该程序在被处理器执行时,可实现上述方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read

only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。
72.实施例二
73.本实施例基本如附图2所示:基于拓扑排序的任务编排装置,包括:跑批任务触发模块、控制模块、数据处理模块、预警模块和管理模块;
74.跑批任务触发模块,用于启动跑批业务,可设定预设时间启动跑批业务,例如凌晨0:00启动,从而不影响白天的业务;
75.所述控制模块,用于进行进度更新;
76.所述数据处理模块,用于对业务以及其子任务进行统一处理,其中统一处理包括两种处理模式:自动模式和人工模式,两种模式可以结合使用从而可以灵活组合,提高处理效率;包括:
77.构建跑批业务的拓扑结构;
78.根据拓扑结构,处理业务,其中当一个业务正常完成后,通过消息推送机制触发控制模块进行进度更新和管理模块进行依赖判断;在处理一个业务时,当一个业务中的任一子任务完成后,通过消息推送机制触发控制模块进行进度的更新和管理模块进行依赖判断;若发生异常,则通过消息推送机制触发控制模块进行进度更新,且数据处理模块进行人工主动重试;若人工主动重试失败,则通过告警机制触发预警模块进行告警;
79.具体为:所述数据处理模块包括:拓扑结构构建子模块、获取子模块、管理模块、子任务获取模块、处理子模块、监控模块、统计子模块和统一消息处理入口。
80.拓扑结构构建子模块,用于基于跑批业务的邻接表数据结构进行构建拓扑结构,其中拓扑结构中每一节点为跑批业务中一业务或者业务中一子任务。
81.获取子模块,用于根据拓扑结构获取每个节点的入度。
82.管理模块,用于查询现有业务以及其子任务的执行情况,更新拓扑结构,并将入度为零的节点,判定为可执行的业务实例,通过消息推送机制触发控制模块进行进度更新。
83.子任务获取子模块,用于根据业务实例的数据情况,进行子任务的数据的捞取和消息的分发,触发统计模块通过缓存机制进行统计数据的原子更新;且完成消息的分发后,开启守护线程,进行进度的维护管理;还用于收到子任务消费的消息后,对子任务进行处理,并通过消息推送机制触发统计模块更新统计数据。
84.处理子模块,还用于若守护线程获取到业务已经完成的消息,通过消息推送机制触发管理模块进行依赖判断。
85.监控子模块,用于监控是否发生异常,若发生则触发预警模块进行告警。
86.管理模块,用于根据拓扑结构,判断是否存在依赖于该业务的下一业务,若存在,则触发数据处理模块启动该下一业务的处理,直至完成跑批;还用于根据拓扑结构,判断是否存在依赖该子任务的下一子任务,若存在,则触发该下一子任务启动。
87.预警模块,用于进行告警;
88.在统一消息处理入口采用分布式锁机制,从而保证一个业务只被一个线程执行,若一个业务中包含多个子任务,子任务中包含海量数据,则可设置若干线程对数据进行处理,最后进行汇总,从而使整个业务最终只被一个线程执行,防止业务、子任务或者数据被反复执行。
89.以上所述的仅是本发明的实施例,方案中公知的具体结构及特性等常识在此未作过多描述,所属领域普通技术人员知晓申请日或者优先权日之前发明所属技术领域所有的普通技术知识,能够获知该领域中所有的现有技术,并且具有应用该日期之前常规实验手段的能力,所属领域普通技术人员可以在本技术给出的启示下,结合自身能力完善并实施本方案,一些典型的公知结构或者公知方法不应当成为所属领域普通技术人员实施本技术的障碍。应当指出,对于本领域的技术人员来说,在不脱离本发明结构的前提下,还可以作出若干变形和改进,这些也应该视为本发明的保护范围,这些都不会影响本发明实施的效果和专利的实用性。本技术要求的保护范围应当以其权利要求的内容为准,说明书中的具体实施方式等记载可以用于解释权利要求的内容。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜