CN113537937A - 基于拓扑排序的任务编排方法、装置、设备及存储介质 - Google Patents
基于拓扑排序的任务编排方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113537937A CN113537937A CN202110808465.XA CN202110808465A CN113537937A CN 113537937 A CN113537937 A CN 113537937A CN 202110808465 A CN202110808465 A CN 202110808465A CN 113537937 A CN113537937 A CN 113537937A
- Authority
- CN
- China
- Prior art keywords
- service
- subtask
- processing
- topological structure
- module
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000012545 processing Methods 0.000 claims abstract description 108
- 230000008569 process Effects 0.000 claims abstract description 22
- 238000012544 monitoring process Methods 0.000 claims abstract description 11
- 230000002159 abnormal effect Effects 0.000 claims abstract description 10
- 230000007246 mechanism Effects 0.000 claims description 66
- 238000004590 computer program Methods 0.000 claims description 11
- 238000012423 maintenance Methods 0.000 claims description 10
- 230000001960 triggered effect Effects 0.000 claims description 7
- 238000010276 construction Methods 0.000 claims description 5
- 230000005856 abnormality Effects 0.000 abstract description 6
- 230000000007 visual effect Effects 0.000 abstract description 3
- 238000012163 sequencing technique Methods 0.000 abstract 1
- 230000009286 beneficial effect Effects 0.000 description 5
- 230000004044 response Effects 0.000 description 4
- 238000004080 punching Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/103—Workflow collaboration or project management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/20—Administration of product repair or maintenance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/02—Banking, e.g. interest calculation or account maintenance
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Strategic Management (AREA)
- Human Resources & Organizations (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Entrepreneurship & Innovation (AREA)
- Marketing (AREA)
- Economics (AREA)
- Tourism & Hospitality (AREA)
- Quality & Reliability (AREA)
- Operations Research (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Data Mining & Analysis (AREA)
- Development Economics (AREA)
- Technology Law (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及数据处理技术领域,具体为一种基于拓扑排序的任务编排方法、装置、设备及存储介质,包括:启动跑批业务,并进行统一处理;统一处理包括:构建跑批业务的拓扑结构;根据拓扑结构,处理业务:当一个业务正常完成后,根据拓扑结构,判断是否存在依赖于该业务的下一业务,若存在,则触发该下一业务启动,直至完成跑批;在处理一个业务时,当一个业务中的任一子任务完成后,根据拓扑结构,判断是否存在依赖该子任务的下一子任务,若存在,则触发该下一子任务启动;在过程中进行异常监控。本方案以拓扑排序将跑批业务中的各业务以及其子任务进行串联,控制运行的过程和可视化操作,降低出错异常的概率。
Description
技术领域
本发明涉及数据处理技术领域,具体为一种基于拓扑排序的任务编排方法、装置、设备及存储介质。
背景技术
使用计算机处理跑批业务,早在计算机诞生之初,便有相关的处理,早期计算机没有现代计算机的输入和输出设备,只能通过在纸带上打孔的方式进行输入输出,一笔一笔地处理数据,需要不停地打孔,读孔,既费时又费力。为了提高效率,渐渐形成了将要处理的数据积攒成“批”,在指定时间一次性进行处理,极大地减少了频繁打孔读孔的操作,提高了效率,这种处理方法,被称为批处理。现代计算机中跑批已经是一种很常见的处理业务的方式,例如:银行的计算机每天都会进行一次跑批,银行将所有分行还有办事处的信息录入到总的计算机内,进行处理、运算,再将第二天需要做的事情发布出去,比如:打印卡函,答应账单等。
因为跑批业务中存在大量数据需要在预期的时间内执行完毕,这些数据需要有数据视图来进行运行情况的监控,由于现有任务编排方法不能体现跑批业务中各任务之间存在的依赖关系,因此现有的数据视图对跑批业务中各任务之间的关联体现较差,并且在跑批过程中,由于数据量较大,并发程度较高,所以出错异常的概率也会提高,会影响跑批业务的运行。
发明内容
本发明的目的之一在于提供一种基于拓扑排序的任务编排方法、装置、设备及存储介质,以拓扑排序将跑批业务中的各业务以及其子任务进行串联,控制跑批业务运行的过程和可视化操作,降低出错异常的概率,并通过消息机制保证业务处理进度和异常情况的实时响应,降低维护成本。
本发明提供的基础方案一:基于拓扑排序的任务编排方法,包括如下内容:
启动跑批业务,并进行统一处理;所述跑批业务中包含若干业务,每个业务中包含若干子任务;
所述统一处理包括:
构建跑批业务的拓扑结构;
根据拓扑结构,处理业务:当一个业务正常完成后,通过消息推送机制进行进度的更新,根据拓扑结构,判断是否存在依赖于该业务的下一业务,若存在,则触发该下一业务启动,直至完成跑批;在处理一个业务时,当一个业务中的任一子任务完成后,通过消息推送机制进行进度的更新,并根据拓扑结构,判断是否存在依赖该子任务的下一子任务,若存在,则触发该下一子任务启动;
在统一处理过程中,若发生异常,则通过消息推送机制进行进度更新,并进行人工主动重试;若人工主动重试失败,则通过告警机制进行告警。
基础方案一的有益效果:1、拓扑结构作为图结构,建立业务以及其子任务之间的依赖关系,将跑批业务中的各业务以及各业务中的子任务进行串联,完成整个跑批业务的串联,便于用户控制跑批业务进行的过程,以及可视化操作,特别是完成整个跑批业务的串联后,即时是海量的数据,在数据视图也可以清楚的了解到各业务以及各业务中的子任务之间的关系。
2、在统一处理过程中,若发生异常,则通过消息推送机制进行进度更新,并进行人工主动重试;消息推送机制不仅更新业务以及其子任务的进行情况,也在处理过程中发生异常的时候进行进度更新,保证业务处理进度以及异常情况的实时响应,以便于用户及时从处理异常,防止异常影响业务处理进度,造成经济损失。并且通过消息推送机制进行进度更新,并进行人工主动重试以后,若人工主动重试失败,还会通过告警机制进行告警,因为跑批业务基本大多数情况下都是在凌晨进行处理,某些关键流程需要保证其及时性,虽然异常发生以后会进行人工主动重试,但是如果人工主动重试失败以后,需要及时的将异常告知值班人员,让值班人员及时处理,以避免由于时效性问题造成更大的经济损失。
3、由于在进行处理业务时,采用了拓扑排序的手段,完成整个跑批业务的串联,在数据视图也可以清楚的了解到各业务以及各业务中的子任务之间的关系,在处理过程中,如果发生异常,用户可以根据可视化的各业务以及各业务中的子任务之间的关系,快速的定位到异常的业务或子任务,有利于降低维护的时间成本。
进一步,所述统一处理包括两种处理模式:自动模式和人工模式。
有益效果:统一处理包括两种处理模式:自动模式和人工模式,两种模式可以结合使用从而可以灵活组合,提高处理效率。
进一步,所述构建跑批业务的拓扑结构是基于跑批业务的邻接表数据结构进行构建拓扑结构,且拓扑结构中每一节点为跑批业务中一业务或者业务中一子任务。
有益效果:海量数据基本都是采用数据库进行存储,数据库中又常采用邻接表,因此,构建跑批业务的拓扑结构时,基于跑批业务的邻接表数据结构进行构建拓扑结构,方便快捷,且拓扑结构中每一节点为跑批业务中一业务或者业务中一子任务,既能体现跑批业务中各业务之间的关系也能体现各业务中各子任务之间的关系。并且拓扑结构中每一节点为跑批业务中一业务或者业务中一子任务,当一个业务中只有一个子任务时,那个该业务和该子任务就是为一个节点。
进一步,所述根据拓扑结构,处理业务,具体为:
根据拓扑结构获取每个节点的入度;
查询现有业务以及其子任务的执行情况,更新拓扑结构,并将入度为零的节点,判定为可执行的业务实例,通过消息推送机制进行进度的更新;
根据业务实例的数据情况,进行子任务的数据的捞取和消息的分发,通过缓存机制进行统计数据的原子更新;
完成消息的分发后,开启守护线程,进行进度的维护管理;
若收到子任务消费的消息,则对子任务进行处理,并通过消息推送机制更新统计数据;
若守护线程获取到业务已经完成的消息,根据拓扑结构,判断是否存在依赖于该业务的下一业务,若存在,则通过消息推送机制触发该下一业务启动,直至完成跑批。
有益效果:通过上述方法可以保证跑批业务按拓扑结构,逐一完成业务,各业务中的子任务全部完成后,才进行下一业务,保证业务完成的完整度。
进一步,所述构建跑批业务的拓扑结构前,还包括在统一消息处理入口采用分布式锁机制,所述统一消息入口为所有消息进行分发均经过的入口。
有益效果:构建跑批业务的拓扑结构前,还包括在统一消息处理入口采用分布式锁机制,从而保证一个业务或一个子任务只被一个线程执行。
本发明提供基础方案二:基于拓扑排序的任务编排装置,包括:跑批任务触发模块、控制模块、数据处理模块、预警模块和管理模块;
跑批任务触发模块,用于启动跑批业务;
所述控制模块,用于进行进度更新;
所述数据处理模块,用于对业务以及其子任务进行统一处理,包括:
构建跑批业务的拓扑结构;
根据拓扑结构,处理业务,其中当一个业务正常完成后,通过消息推送机制触发控制模块进行进度更新和管理模块进行依赖判断;在处理一个业务时,当一个业务中的任一子任务完成后,通过消息推送机制触发控制模块进行进度的更新和管理模块进行依赖判断;若发生异常,则通过消息推送机制触发控制模块进行进度更新,且数据处理模块进行人工主动重试;若人工主动重试失败,则通过告警机制触发预警模块进行告警;
所述管理模块,用于根据拓扑结构,判断是否存在依赖于该业务的下一业务,若存在,则触发数据处理模块启动该下一业务的处理,直至完成跑批;还用于根据拓扑结构,判断是否存在依赖该子任务的下一子任务,若存在,则触发该下一子任务启动;
所述预警模块,用于进行告警。
基础方案二的有益效果:1、数据处理模块构建跑批业务的拓扑结构,拓扑结构作为图结构,建立业务以及其子任务之间的依赖关系,将跑批业务中的各业务以及各业务中的子任务进行串联,完成整个跑批业务的串联,便于用户控制跑批业务进行的过程,以及可视化操作,特别是完成整个跑批业务的串联后,即时是海量的数据,在数据视图也可以清楚的了解到各业务以及各业务中的子任务之间的关系。
2、数据模块在统一处理过程中,无论处理是否正常完成都会通过消息推送机制触发控制模块进行进度的更新,并且异常时会触发预警模块进行告警,保证业务处理进度以及异常情况的实时响应,以便于用户及时从处理异常,防止异常影响业务处理进度,造成经济损失。
3、由于数据处理模块在进行处理业务时,采用了拓扑排序的手段,完成整个跑批业务的串联,在数据视图也可以清楚的了解到各业务以及各业务中的子任务之间的关系,在处理过程中,如果发生异常,用户可以根据可视化的各业务以及各业务中的子任务之间的关系,快速的定位到异常的业务或子任务,有利于降低维护的时间成本。
进一步,所述统一处理包括两种处理模式:自动模式和人工模式。
有益效果:统一处理包括两种处理模式:自动模式和人工模式,两种模式可以结合使用从而可以灵活组合,提高处理效率。
进一步,所述数据处理模块包括:拓扑结构构建子模块、获取子模块、子任务获取子模块、处理子模块、监控子模块和统一消息处理入口;
拓扑结构构建子模块,用于基于跑批业务的邻接表数据结构进行构建拓扑结构,其中拓扑结构中每一节点为跑批业务中一业务或者业务中一子任务;
获取子模块,用于根据拓扑结构获取每个节点的入度;
管理模块,还用于查询现有业务以及其子任务的执行情况,更新拓扑结构,并将入度为零的节点,判定为可执行的业务实例,通过消息推送机制触发控制模块进行进度更新;
子任务获取子模块,用于根据业务实例的数据情况,进行子任务的数据的捞取和消息的分发,触发统计模块通过缓存机制进行统计数据的原子更新;且完成消息的分发后,开启守护线程,进行进度的维护管理;还用于收到子任务消费的消息后,对子任务进行处理,并通过消息推送机制触发统计模块更新统计数据;
处理子模块,还用于若守护线程获取到业务已经完成的消息,通过消息推送机制触发管理模块进行依赖判断;
监控子模块,用于监控是否发生异常,若发生则触发预警模块进行告警;
统一消息处理入口采用分布式锁机制,为所有消息进行分发均经过的入口。
有益效果:各模块和各子模块之间协助工作保证跑批业务按拓扑结构,逐一完成业务,各业务中的子任务全部完成后,才进行下一业务,保证业务完成的完整度。
本发明提供基础方案三:基于拓扑排序的任务编排设备,包括处理器和存储器,所述处理器和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行任一项上述基于拓扑排序的任务编排方法的步骤。
基础方案三的有益效果:本设备采用上述基于拓扑排序的任务编排方法,以拓扑排序将跑批业务中的各业务以及其子任务进行串联,控制跑批业务运行的过程和可视化操作,降低出错异常的概率,并通过消息机制保证业务处理进度和异常情况的实时响应,降低维护成本。
本发明提供基础方案四:基于拓扑排序的任务编排存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现任一项上述基于拓扑排序的任务编排方法的步骤。
基础方案四的有益效果:基于拓扑排序的任务编排存储介质,存储介质上存储有计算机程序,计算机程序被处理器执行时实现任一项上述基于拓扑排序的任务编排方法的步骤,以便于基于拓扑排序的任务编排方法的应用。
附图说明
图1为本发明基于拓扑排序的任务编排方法实施例的流程图;
图2为本发明基于拓扑排序的任务编排装置实施例的逻辑框图。
具体实施方式
下面通过具体实施方式进一步详细说明:
实施例基本如附图1所示:基于拓扑排序的任务编排方法,应用于分布式系统中,包括如下内容:
启动跑批业务,并进行统一处理,统一处理包括两种处理模式:自动模式和人工模式,两种模式可以结合使用从而可以灵活组合,提高处理效率;其中跑批业务中包含若干业务,每个业务中包含若干子任务,业务以及其子任务包含的数据存储在数据库中;
统一处理包括:
统一消息处理入口为所有消息进行分发均经过的入口,在统一消息处理入口采用分布式锁机制,从而保证一个业务只被一个线程执行,若一个业务中包含多个子任务,子任务中包含海量数据,则可设置若干线程对数据进行处理,最后进行汇总,从而使整个业务最终只被一个线程执行,防止业务、子任务或者数据被反复执行。
基于跑批业务的邻接表数据结构进行构建跑批业务的拓扑结构,拓扑结构中每一节点为跑批业务中一业务或者业务中一子任务,当一个业务中只有一个子任务时,那个该业务和该子任务就是为一个节点,且拓扑结构无特殊的设定结构,拓扑中的节点根据前置节点的依赖关系进行判断自身是否可触发;
根据拓扑结构,处理业务:当一个业务正常完成后,通过消息推送机制进行进度的更新,根据拓扑结构,判断是否存在依赖于该业务的下一业务,若存在,则触发该下一业务启动,直至完成跑批;在处理一个业务时,当一个业务中的任一子任务完成后,通过消息推送机制进行进度的更新,并根据拓扑结构,判断是否存在依赖该子任务的下一子任务,若存在,则触发该下一子任务启动;具体为:
根据拓扑结构获取每个节点的入度;
查询现有业务以及其子任务的执行情况,即本次跑批任务各节点的执行情况;更新拓扑结构,并将入度为零的节点,判定为可执行的业务实例,通过消息推送机制进行进度的更新;其中入度为是任务进行时发生改变的动态值,如:一个节点A,前置节点有B和C,A的触发条件为B和C共同执行完成后触发,在任务开始的时候A的入度就是2,B完成后A的入度减1,C完成后A的入度再减1,此时A的入度变为0则表示可执行。消息推送机制就将包含对应信息的消息发送给实际的各类模块。
根据业务实例的数据情况,进行子任务的数据的捞取和子任务消费的消息的分发,通过缓存机制进行统计数据的原子更新;此处业务实例的数据情况中数据为一个业务的初始化数据,也就是对初始化数据基于数据提供的类型、任务名称等信息进行前置处理;统计数据是基于缓存机制的,初始化子任务将数据总数统计到缓存中,根据处理子任务批次号处理完一次子任务数据对其进行递减操作,当数据减少为0则子任务需要处理的数据全部完成;原子更新指一批数据一起更新成功才算成功,如果出现某一条数据失败则整个操作失败,以此防止重复统计、漏统计等现象的出现。
完成消息的分发后,开启守护线程,进行进度的维护管理;
若收到子任务消费的消息,则对子任务进行处理,并通过消息推送机制更新统计数据;统计数据包括数据分发到各节点的处理情况,包括处理主机信息、处理任务名称、处理状态和错误信息等;具体为:收到子任务消费的信息,则将捞取的子任务的数据逐条分发到对应的子任务,子任务的执行需要有入参条件来进行处理,当分发的数据处理完成一条则计数减1,直到最终减少为0则表示分发任务为全部执行结束。
若守护线程获取到业务已经完成的消息,则根据拓扑结构,判断是否存在依赖于该业务的下一业务,若存在,则通过消息推送机制触发该下一业务启动,直至完成跑批。
在统一处理过程中,若发生异常,则通过消息推送机制进行进度更新,并进行人工主动重试;若人工主动重试失败,则通过告警机制进行告警;其中常见的异常包括:数据库无法访问,网络访问受到限制,读取本地文件无权限等。其中告警机制是基于业务要求规则进行设定,如设定告警机制为预设时间内未完成跑批任务则进行告警,告警可以通过钉钉或智能语音的外呼,让值班人员及时发现异常,以便于及时处理,防止影响第二天的业务。
本实施例还提供一种基于拓扑排序的任务编排设备,包括处理器和存储器,所述处理器和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行任一项上述基于拓扑排序的任务编排方法的步骤。
上述基于拓扑排序的任务编排方法如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过程序来指令相关的硬件来完成,程序可存储于一可读存储介质中,该程序在被处理器执行时,可实现上述方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。
实施例二
本实施例基本如附图2所示:基于拓扑排序的任务编排装置,包括:跑批任务触发模块、控制模块、数据处理模块、预警模块和管理模块;
跑批任务触发模块,用于启动跑批业务,可设定预设时间启动跑批业务,例如凌晨0:00启动,从而不影响白天的业务;
所述控制模块,用于进行进度更新;
所述数据处理模块,用于对业务以及其子任务进行统一处理,其中统一处理包括两种处理模式:自动模式和人工模式,两种模式可以结合使用从而可以灵活组合,提高处理效率;包括:
构建跑批业务的拓扑结构;
根据拓扑结构,处理业务,其中当一个业务正常完成后,通过消息推送机制触发控制模块进行进度更新和管理模块进行依赖判断;在处理一个业务时,当一个业务中的任一子任务完成后,通过消息推送机制触发控制模块进行进度的更新和管理模块进行依赖判断;若发生异常,则通过消息推送机制触发控制模块进行进度更新,且数据处理模块进行人工主动重试;若人工主动重试失败,则通过告警机制触发预警模块进行告警;
具体为:所述数据处理模块包括:拓扑结构构建子模块、获取子模块、管理模块、子任务获取模块、处理子模块、监控模块、统计子模块和统一消息处理入口。
拓扑结构构建子模块,用于基于跑批业务的邻接表数据结构进行构建拓扑结构,其中拓扑结构中每一节点为跑批业务中一业务或者业务中一子任务。
获取子模块,用于根据拓扑结构获取每个节点的入度。
管理模块,用于查询现有业务以及其子任务的执行情况,更新拓扑结构,并将入度为零的节点,判定为可执行的业务实例,通过消息推送机制触发控制模块进行进度更新。
子任务获取子模块,用于根据业务实例的数据情况,进行子任务的数据的捞取和消息的分发,触发统计模块通过缓存机制进行统计数据的原子更新;且完成消息的分发后,开启守护线程,进行进度的维护管理;还用于收到子任务消费的消息后,对子任务进行处理,并通过消息推送机制触发统计模块更新统计数据。
处理子模块,还用于若守护线程获取到业务已经完成的消息,通过消息推送机制触发管理模块进行依赖判断。
监控子模块,用于监控是否发生异常,若发生则触发预警模块进行告警。
管理模块,用于根据拓扑结构,判断是否存在依赖于该业务的下一业务,若存在,则触发数据处理模块启动该下一业务的处理,直至完成跑批;还用于根据拓扑结构,判断是否存在依赖该子任务的下一子任务,若存在,则触发该下一子任务启动。
预警模块,用于进行告警;
在统一消息处理入口采用分布式锁机制,从而保证一个业务只被一个线程执行,若一个业务中包含多个子任务,子任务中包含海量数据,则可设置若干线程对数据进行处理,最后进行汇总,从而使整个业务最终只被一个线程执行,防止业务、子任务或者数据被反复执行。
以上所述的仅是本发明的实施例,方案中公知的具体结构及特性等常识在此未作过多描述,所属领域普通技术人员知晓申请日或者优先权日之前发明所属技术领域所有的普通技术知识,能够获知该领域中所有的现有技术,并且具有应用该日期之前常规实验手段的能力,所属领域普通技术人员可以在本申请给出的启示下,结合自身能力完善并实施本方案,一些典型的公知结构或者公知方法不应当成为所属领域普通技术人员实施本申请的障碍。应当指出,对于本领域的技术人员来说,在不脱离本发明结构的前提下,还可以作出若干变形和改进,这些也应该视为本发明的保护范围,这些都不会影响本发明实施的效果和专利的实用性。本申请要求的保护范围应当以其权利要求的内容为准,说明书中的具体实施方式等记载可以用于解释权利要求的内容。
Claims (10)
1.基于拓扑排序的任务编排方法,其特征在于:包括如下内容:
启动跑批业务,并进行统一处理;所述跑批业务中包含若干业务,每个业务中包含若干子任务;
所述统一处理包括:
构建跑批业务的拓扑结构;
根据拓扑结构,处理业务:当一个业务正常完成后,通过消息推送机制进行进度的更新,根据拓扑结构,判断是否存在依赖于该业务的下一业务,若存在,则触发该下一业务启动,直至完成跑批;在处理一个业务时,当一个业务中的任一子任务完成后,通过消息推送机制进行进度的更新,并根据拓扑结构,判断是否存在依赖该子任务的下一子任务,若存在,则触发该下一子任务启动;
在统一处理过程中,若发生异常,则通过消息推送机制进行进度更新,并进行人工主动重试;若人工主动重试失败,则通过告警机制进行告警。
2.根据权利要求1所述的基于拓扑排序的任务编排方法,其特征在于:所述统一处理包括两种处理模式:自动模式和人工模式。
3.根据权利要求1所述的基于拓扑排序的任务编排方法,其特征在于:所述构建跑批业务的拓扑结构是基于跑批业务的邻接表数据结构进行构建拓扑结构,且拓扑结构中每一节点为跑批业务中一业务或者业务中一子任务。
4.根据权利要求3所述的基于拓扑排序的任务编排方法,其特征在于:所述根据拓扑结构,处理业务,包括:
根据拓扑结构获取每个节点的入度;
查询现有业务以及其子任务的执行情况,更新拓扑结构,并将入度为零的节点,判定为可执行的业务实例,通过消息推送机制进行进度的更新;
根据业务实例的数据情况,进行子任务的数据的捞取和子任务消费的消息的分发,通过缓存机制进行统计数据的原子更新;
完成消息的分发后,开启守护线程,进行进度的维护管理;
若收到子任务消费的消息,则对子任务进行处理,并通过消息推送机制更新统计数据;
若守护线程获取到业务已经完成的消息,根据拓扑结构,判断是否存在依赖于该业务的下一业务,若存在,则通过消息推送机制触发该下一业务启动,直至完成跑批。
5.根据权利要求4所述的基于拓扑排序的任务编排方法,其特征在于:所述构建跑批业务的拓扑结构前,还包括在统一消息处理入口采用分布式锁机制,所述统一消息入口为所有消息进行分发均经过的入口。
6.基于拓扑排序的任务编排装置,其特征在于:包括:跑批任务触发模块、控制模块、数据处理模块、预警模块和管理模块;
跑批任务触发模块,用于启动跑批业务;
所述控制模块,用于进行进度更新;
所述数据处理模块,用于对业务以及其子任务进行统一处理,包括:
构建跑批业务的拓扑结构;
根据拓扑结构,处理业务,其中当一个业务正常完成后,通过消息推送机制触发控制模块进行进度更新和管理模块进行依赖判断;在处理一个业务时,当一个业务中的任一子任务完成后,通过消息推送机制触发控制模块进行进度的更新和管理模块进行依赖判断;若发生异常,则通过消息推送机制触发控制模块进行进度更新,且数据处理模块进行人工主动重试;若人工主动重试失败,则通过告警机制触发预警模块进行告警;
所述管理模块,用于根据拓扑结构,判断是否存在依赖于该业务的下一业务,若存在,则触发数据处理模块启动该下一业务的处理,直至完成跑批;还用于根据拓扑结构,判断是否存在依赖该子任务的下一子任务,若存在,则触发该下一子任务启动;
所述预警模块,用于进行告警。
7.根据权利要求6所述的任务编排装置,其特征在于:所述统一处理包括两种处理模式:自动模式和人工模式。
8.根据权利要求6所述的任务编排装置,其特征在于:
所述数据处理模块包括:拓扑结构构建子模块、获取子模块、子任务获取子模块、处理子模块、监控子模块和统一消息处理入口;
拓扑结构构建子模块,用于基于跑批业务的邻接表数据结构进行构建拓扑结构,其中拓扑结构中每一节点为跑批业务中一业务或者业务中一子任务;
获取子模块,用于根据拓扑结构获取每个节点的入度;
管理模块,还用于查询现有业务以及其子任务的执行情况,更新拓扑结构,并将入度为零的节点,判定为可执行的业务实例,通过消息推送机制触发控制模块进行进度更新;
子任务获取子模块,用于根据业务实例的数据情况,进行子任务的数据的捞取和子任务消费的消息的分发,触发统计模块通过缓存机制进行统计数据的原子更新;且完成消息的分发后,开启守护线程,进行进度的维护管理;还用于收到子任务消费的消息后,对子任务进行处理,并通过消息推送机制触发统计模块更新统计数据;
处理子模块,还用于若守护线程获取到业务已经完成的消息,通过消息推送机制触发管理模块进行依赖判断;
监控子模块,用于监控是否发生异常,若发生则触发预警模块进行告警,
统一消息处理入口采用分布式锁机制,为所有消息进行分发均经过的入口。
9.基于拓扑排序的任务编排设备,包括处理器和存储器,所述处理器和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,其特征在于:所述处理器被配置用于调用所述程序指令,执行如权利要求1至5任一所述基于拓扑排序的任务编排方法的步骤。
10.基于拓扑排序的任务编排存储介质,所述存储介质上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现如权利要求1至5任一项基于拓扑排序的任务编排方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110808465.XA CN113537937A (zh) | 2021-07-16 | 2021-07-16 | 基于拓扑排序的任务编排方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110808465.XA CN113537937A (zh) | 2021-07-16 | 2021-07-16 | 基于拓扑排序的任务编排方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113537937A true CN113537937A (zh) | 2021-10-22 |
Family
ID=78099953
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110808465.XA Pending CN113537937A (zh) | 2021-07-16 | 2021-07-16 | 基于拓扑排序的任务编排方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113537937A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114240109A (zh) * | 2021-12-06 | 2022-03-25 | 中电金信软件有限公司 | 一种跨区域处理跑批任务的方法、装置及系统 |
CN114500289A (zh) * | 2021-12-15 | 2022-05-13 | 深信服科技股份有限公司 | 控制平面恢复方法、装置、控制节点及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106681820A (zh) * | 2016-12-30 | 2017-05-17 | 西北工业大学 | 基于消息组合的可扩展大数据计算方法 |
CN110362401A (zh) * | 2019-06-20 | 2019-10-22 | 深圳壹账通智能科技有限公司 | 数据跑批方法、装置、存储介质及集群中的成员主机 |
CN111221643A (zh) * | 2018-11-23 | 2020-06-02 | 阿里巴巴集团控股有限公司 | 任务处理方法和任务处理装置 |
CN111338774A (zh) * | 2020-02-21 | 2020-06-26 | 华云数据有限公司 | 分布式定时任务调度系统及计算装置 |
CN111858065A (zh) * | 2020-07-28 | 2020-10-30 | 中国平安财产保险股份有限公司 | 数据处理方法、设备、存储介质及装置 |
CN112087379A (zh) * | 2019-06-12 | 2020-12-15 | 中兴通讯股份有限公司 | 业务链的编排方法及装置、存储介质和电子装置 |
CN112291293A (zh) * | 2019-07-27 | 2021-01-29 | 华为技术有限公司 | 任务处理方法、相关设备及计算机存储介质 |
-
2021
- 2021-07-16 CN CN202110808465.XA patent/CN113537937A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106681820A (zh) * | 2016-12-30 | 2017-05-17 | 西北工业大学 | 基于消息组合的可扩展大数据计算方法 |
CN111221643A (zh) * | 2018-11-23 | 2020-06-02 | 阿里巴巴集团控股有限公司 | 任务处理方法和任务处理装置 |
CN112087379A (zh) * | 2019-06-12 | 2020-12-15 | 中兴通讯股份有限公司 | 业务链的编排方法及装置、存储介质和电子装置 |
CN110362401A (zh) * | 2019-06-20 | 2019-10-22 | 深圳壹账通智能科技有限公司 | 数据跑批方法、装置、存储介质及集群中的成员主机 |
CN112291293A (zh) * | 2019-07-27 | 2021-01-29 | 华为技术有限公司 | 任务处理方法、相关设备及计算机存储介质 |
CN111338774A (zh) * | 2020-02-21 | 2020-06-26 | 华云数据有限公司 | 分布式定时任务调度系统及计算装置 |
CN111858065A (zh) * | 2020-07-28 | 2020-10-30 | 中国平安财产保险股份有限公司 | 数据处理方法、设备、存储介质及装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114240109A (zh) * | 2021-12-06 | 2022-03-25 | 中电金信软件有限公司 | 一种跨区域处理跑批任务的方法、装置及系统 |
CN114500289A (zh) * | 2021-12-15 | 2022-05-13 | 深信服科技股份有限公司 | 控制平面恢复方法、装置、控制节点及存储介质 |
CN114500289B (zh) * | 2021-12-15 | 2023-12-29 | 深信服科技股份有限公司 | 控制平面恢复方法、装置、控制节点及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109039833B (zh) | 一种监控带宽状态的方法和装置 | |
US9678964B2 (en) | Method, system, and computer program for monitoring performance of applications in a distributed environment | |
US6289368B1 (en) | Method and apparatus for indicating the status of one or more computer processes | |
AU2003204420B2 (en) | Systems and methods for work list prediction | |
CN113537937A (zh) | 基于拓扑排序的任务编排方法、装置、设备及存储介质 | |
US6675128B1 (en) | Methods and apparatus for performance management using self-adjusting model-based policies | |
US20060117059A1 (en) | System and method for monitoring and managing performance and availability data from multiple data providers using a plurality of executable decision trees to consolidate, correlate, and diagnose said data | |
US7502846B2 (en) | Monitoring service with inter-enterprise contextual analysis | |
CN111400011B (zh) | 一种实时任务调度方法、系统、设备及可读存储介质 | |
CN112035233A (zh) | 大数据批量作业任务调度方法及装置 | |
CN110611707A (zh) | 一种任务调度的方法及装置 | |
CN113760677A (zh) | 异常链路分析方法、装置、设备及存储介质 | |
US20050235284A1 (en) | Systems and methods for tracking processing unit usage | |
US8190459B1 (en) | Customizable workflow reporter | |
CN112685070A (zh) | 多线程多维度的数据处理方法、装置、设备及存储介质 | |
CN113010277A (zh) | 一种基于自动化运维的多条件触发自动作业系统和方法 | |
CN117314106A (zh) | 运营任务的自动化处理方法、装置、设备及存储介质 | |
CN113722141B (zh) | 数据任务的延迟原因确定方法、装置、电子设备及介质 | |
CN116109112B (zh) | 基于聚合接口的业务数据处理方法、装置、介质和设备 | |
JP3984948B2 (ja) | 計算機システムの運用管理方法 | |
CN115480915A (zh) | 工作流程处理方法、设备、系统及可读存储介质 | |
CN114358595A (zh) | 数字化指标作业的监控方法、系统及相关装置 | |
JP2000148517A (ja) | ジョブネット実行方式 | |
CN115061801A (zh) | 任务管理方法和装置、存储介质及电子装置 | |
CN117743074A (zh) | 大数据作业的监控处理方法、装置及服务器 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20211022 |