CN112799797A - 一种任务管理的方法和装置 - Google Patents
一种任务管理的方法和装置 Download PDFInfo
- Publication number
- CN112799797A CN112799797A CN201911115455.7A CN201911115455A CN112799797A CN 112799797 A CN112799797 A CN 112799797A CN 201911115455 A CN201911115455 A CN 201911115455A CN 112799797 A CN112799797 A CN 112799797A
- Authority
- CN
- China
- Prior art keywords
- node
- task
- nodes
- dag
- dag workflow
- 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
- 238000007726 management method Methods 0.000 title claims description 27
- 238000000034 method Methods 0.000 claims abstract description 56
- 230000009191 jumping Effects 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 10
- 238000012545 processing Methods 0.000 claims description 8
- 239000012634 fragment Substances 0.000 claims description 7
- 238000004458 analytical method Methods 0.000 claims description 4
- 238000003672 processing method Methods 0.000 claims description 3
- 238000004148 unit process Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 18
- 230000008569 process Effects 0.000 description 18
- 230000006870 function Effects 0.000 description 14
- 238000004891 communication Methods 0.000 description 7
- 238000013467 fragmentation Methods 0.000 description 7
- 238000006062 fragmentation reaction Methods 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 125000002015 acyclic group Chemical group 0.000 description 1
- 230000003750 conditioning effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种任务管理的方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:接收任务执行请求,解析任务的任务类型;根据所述任务类型和预设匹配关系,确定与所述任务类型对应的DAG工作流;基于所述DAG工作流执行所述任务。该实施方式能够使业务框架与业务场景解耦,降低代码复杂度,提高业务框架的通用性。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种任务管理的方法和装置。
背景技术
业务流程一般有对个阶段,每个阶段往往涉及业务***中的多个业务处理模块,大部分模块含有同步或异步调用外部服务的场景。如果按照面向过程的编程思路设计业务框架,代码逻辑会陷入很长的异步回调陷阱,使得代码非常难以理解和修改。因此,实际应用过程中一般针对具体场景设计对应的业务框架。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
业务框架与业务场景耦合太紧,代码复杂度高,且无法适用于其他业务场景,通用性差。
发明内容
有鉴于此,本发明实施例提供一种任务管理的方法和装置,能够使业务框架与业务场景解耦,降低代码复杂度,提高业务框架的通用性。
为实现上述目的,根据本发明实施例的一个方面,提供了一种任务管理的方法,包括:
接收任务执行请求,解析任务的任务类型;
根据所述任务类型和预设匹配关系,确定与所述任务类型对应的DAG工作流;
基于所述DAG工作流执行所述任务。
可选地,确定与所述任务类型对应的DAG工作流之后,还包括:对所述DAG工作流进行合法性校验并确认校验通过。
可选地,所述DAG工作流中各个节点中的至少一个标记为开始节点,至少另一个标记为最终节点;
基于所述有向无环图处理所述待处理任务,包括:对于包括上述开始结点在内的所述最终节点之前的任意一个节点,判断所述任意一个节点是否执行成功,若成功,则跳转至任意一个节点的下一个节点;否则,跳转至所述最终节点。
可选地,所述有向无环图中各个节点中的至少一个位于所述最终节点之后。
可选地,所述各个节点包括以下至少之一:串行节点、并行节点、分片节点、条件节点。
根据本发明实施例的第二方面,提供一种任务管理的装置,包括:
解析单元,接收任务执行请求,解析任务的任务类型;
分发单元,根据所述任务类型和预设匹配关系,确定与所述任务类型对应的DAG工作流;
执行单元,基于所述DAG工作流执行所述任务。
可选地,所述分发单元还用于:确定与所述任务类型对应的DAG工作流之后,对所述DAG工作流进行合法性校验并确认校验通过。
可选地,所述DAG工作流中各个节点中的至少一个标记为开始节点,至少另一个标记为最终节点;
所述执行单元基于所述有向无环图处理所述待处理任务,包括:对于包括上述开始结点在内的所述最终节点之前的任意一个节点,判断所述任意一个节点是否执行成功,若成功,则跳转至任意一个节点的下一个节点;否则,跳转至所述最终节点。
根据本发明实施例的第三方面,提供一种任务管理的电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例第一方面提供的方法。
根据本发明实施例的第四方面,提供一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例第一方面提供的方法。
上述发明中的一个实施例具有如下优点或有益效果:采用根据任务类型和预设匹配关系确定与任务类型对应的DAG工作流、基于DAG工作流执行任务的技术手段,能够使业务框架与业务场景完全隔离,业务方只需要创建DAG工作流,不需要关注DAG工作流中各个节点之间的调度问题,降低代码复杂度,提高业务框架的通用性。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的任务管理的方法的主要流程的示意图;
图2是本发明可选实施例中DAG工作流的示意图;
图3是在线广告***的示意图;
图4是应用本发明方法的在线广告***的业务框架示意图;
图5是应用本发明方法的在线广告***的业务流程示意图;
图6是根据本发明实施例的任务管理的装置的主要模块的示意图;
图7是本发明实施例可以应用于其中的示例性***架构图;
图8是适于用来实现本发明实施例的终端设备或服务器的计算机***的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
根据本发明实施例的一个方面,提供了一种任务管理的方法。
图1是根据本发明实施例的任务管理的方法的主要流程的示意图,如图1所示,任务管理的方法,包括:步骤S101、步骤S102和步骤S103。
步骤S101、接收任务执行请求,解析任务的任务类型。
执行不同任务类型的任务所需要调用的节点不一定相同,任务类型相同的任务,执行过程需要调用的节点相同。本例中,预先根据任务执行时需要调用的节点情况,将任务划分为不同的任务类型。
本步骤用于判断当前任务需要执行哪一个DAG工作流,例如广告有搜索和推荐两种类型,当用户进行商品搜索时需要出搜索广告则执行搜索广告的DAG工作流,当用户浏览商品时需要出推荐广告则执行推荐广告的DAG工作流。
步骤S102、根据所述任务类型和预设匹配关系,确定与所述任务类型对应的DAG工作流。
DAG工作流(directed acycline praph,有向无环图)包含执行对应任务需要调用的各个节点以及各个节点之间的拓扑关系。DAG工作流用来描述不同任务需要执行的各个操作,DAG工作流中的节点用于描述不同阶段操作过程。节点是高内聚的一个操作,具有可重用、业务模块化、可测试等特点。预设匹配关系是指任务类型与对应的DAG工作流之间的对应关系。任务可以拆分为若干个子任务,每个子任务由一个节点执行。
可选地,所述DAG工作流中各个节点中的至少一个标记为开始节点,至少另一个标记为最终节点。基于所述有向无环图处理所述待处理任务,包括:对于包括上述开始结点在内的所述最终节点之前的任意一个节点,判断所述任意一个节点是否执行成功,若成功,则跳转至任意一个节点的下一个节点;否则,跳转至所述最终节点。
开始结点是指用于执行任务的各个节点中无前置依赖的节点,开始节点的数量可以是一个,也可以是多个,例如作为开始节点的多个节点并列执行或分片执行。存在依赖关系的多个节点,当其中一个节点执行失败时,若继续执行以该节点的输出作为输入的节点,仍然会执行失败,为了提高任务执行效率,可以跳过与该节点存在依赖关系的多个节点。最终节点是指节点执行失败时需要跳转到的节点,标记最终节点,能够提高任务执行效率。开始结点与最终节点之间可以不含其它节点(以下简称中间节点),也可以不含中间节点。
可选地,所述有向无环图中各个节点中的至少一个位于所述最终节点之后。最终节点之后的结点都被执行,不做是否执行成功的判断。通过将需要继续执行的节点放置在最终节点之后,对于一些异常节点(即执行失败的节点)来说,执行完之后可以直接跳转到最终结点继续执行后续的流程。
本例中,各个节点包括以下至少之一:串行节点、并行节点、分片节点、条件节点。串行节点是指与DAG工作流中的其他节点依次执行的节点。并行节点(SubNode)是指与DAG工作流中的部分或全部节点并行执行的节点。分片节点(PartitionNode)是指与DAG工作流中的部分或全部节点并行执行、执行的任务相同但是访问下游的分片不同的节点,并行执行的多个节点,或者执行相同任务、并行执行的多个分片节点,下游一般需要设置一个合并(Merge)节点,以对节点的执行结果进行合并。条件节点(ConditionNode)是指需要判断当前节点的执行结果,根据结果判断执行下游哪一个节点的节点。
图2是本发明可选实施例中DAG工作流的示意图,在图2示出的可选实施例中,DAG工作流中的各个节点包括:串行节点(Node)、并行节点(SubNode)、分片节点(PartitionNode)、条件节点(ConditionNode)。图2中,多个并行节点(SubNode)之后的节点Node可以看做是对该多个并行节点(SubNode)的执行结果进行合并的节点,多个分片节点(PartitionNode)之后的节点Node可以看做是对该多个分片节点(PartitionNode)的执行结果进行合并的节点。图2中的Response节点可以看做是最终节点。
采用串行节点、并行节点、分片节点、条件节点等节点,能够基于串行、并行、分片、条件等几类通用逻辑表达各种DAG工作流,提高本发明任务管理的方法的通用性。
可选地,确定与所述任务类型对应的DAG工作流之后,还包括:对所述DAG工作流进行合法性校验并确认校验通过。合法性校验包括:检查DAG工作流是否无环,检查DAG工作流的各个节点是否创建成功。若无环、且节点创建成功,则校验通过,否则校验不通过。
步骤S103、基于所述DAG工作流执行所述任务。
本发明采用根据任务类型和预设匹配关系确定与任务类型对应的DAG工作流、基于DAG工作流执行任务的技术手段,能够使业务框架与业务场景完全隔离,业务方只需要创建DAG工作流,不需要关注DAG工作流中各个节点之间的调度问题,降低代码复杂度,提高业务框架的通用性。
以互联网在线广告***为例,互联网在线广告是业务流程非常长的复杂***,包括信息提取、过滤、广告排序等多个阶段,每个阶段又包括多个业务处理模块,大部分模块含有同步或异步调用外部服务的场景。图3是在线广告***的示意图。如图中的Adserver(广告检索引擎)、Retrieval(广告排序引擎)等,这些***共同的特点是业务流程较长,模块较多。以Adserver为例,大体的步骤包括访问用户信息、访问商品信息、访问模型***、访问检索***、排序打分等。如果按照面向过程的编程思路,一般按照业务流程逐步累加代码,增加各类业务模块,依次按照函数调用过程进行运行,代码量膨胀非常快,而且不易进行模块划分。基于此,本发明根据任务类型和预设匹配关系确定与任务类型对应的DAG工作流,基于DAG工作流执行任务。
图4是根据本发明实施例的任务管理的方法的业务框架示意图。图4中,流量分发器用于对流量进行分发,主要功能是进行DAG工作流的注册以及流量类型的解析。可以在流量分发器中注册预设匹配关系。在使用时只需调用注册方法以及继承解析流量类型函数并根据自身业务进行流量类型解析即可,具体需要几个DAG工作流由业务方灵活控制,具有可扩展性。执行框架中预设各个任务类型的DAG工作流。基础Operator部分的OP A、OP B、OPB1、OP C代表各个节点,每个节点执行一个业务操作(Operator),节点是高内聚的一个操作,具有可重用、业务模块化、可测试等特点。
采用本发明的任务管理方法管理在线广告***后,在线广告***的运行过程如下:
1.网关(gateway)将请求发送到Adserver之后,首先流量分发器判断流量类型,然后按照流量类型创建相应的DAG工作流(图中,Excutiongraph1、Excutiongraph2、Excutiongraph3分别代表一个DAG工作流);
2.根据执行结点的依赖关系初始化DAG工作流,当DAG工作流有环或者节点使用资源初始化失败时,退出进程并输出响应错误信息。这样做的目的是能尽可能早地发现DAG工作流的创建过程中的问题;
3.当DAG工作流初始化成功后,从开始节点开始运行DAG工作流。运行过程中,当某个节点执行失败后,跳转到最终节点,进行日志上报,资源回收等工作。
4.当***提供的是异步服务时,需要执行回调函数,通知调用方请求服务结束。到此,一个完整的DAG工作流运行结束。
本例中,初始化时为每个请求创建Context类型的request_context对象与frame_context对象,用于保存任务执行过程中的数据信息。Context类为业务框架定义的数据存储对象,request_context为业务上下文数据,frame_context为业务与框架之间的交互载体。
初始化时Operator需要实现初始化和DoWork方法(一种函数),用于业务方继承并实现,框架执行Work(一种函数)方法,用于控制执行流和统计耗时、上报失败告警等功能。业务类继承CommonOperator(常规操作过程,即串行执行的操作),实现Init/DoWork函数,并用REGISTER_COMMON_OPERATOR_GENERATOR(常规操作过程的注册器)进行注册。分片操作Operator继承PartitionOperator(分片操作过程,即多片并行执行的操作),实现Init/DoWork函数,并用REGISTER_PARTITION_OPERATOR_GENERATOR(分片操作过程的注册器)进行注册。DAG工作流初始化时通过反射机制根据Operator名称创建业务Operator对象,以存储该节点的执行数据。
图5是应用本发明方法的在线广告***的业务流程示意图。如图5所示,Adserver***的流程包括:
ParseRequestOperator节点解析请求;
ValidateReqParamOperator节点进行参数合法性校验;
FetchUserInfoOperator节点获取用户信息;
FetchQueryCateAndBrandOperator节点获取请求的分类和品牌;
FetchNaturalSkuOperator节点获取自然结果;
FetchTriggerInfoOperator节点获取触发信息;
FillRetrievalReqOperator节点根据触发信息填充检索请求;
AccessRetrievalOperator节点根据检索请求请求检索服务;
RoughSortOperator节点对检索结果进行粗排序;
FetchSkuInfoOperator节点获取粗排序之后的sku(Stock Keeping Unit,库存量单位)信息;
FilterAdSkuOperator节点按照预设规则过滤sku;
FineSortOperator节点对过滤后的检索结果进行精排序;
JsonPackerOperator节点打包结果;
WriteBusinessLogOperator节点写日志;
FinalOperator节点最终操作。
其中,ParseRequestOperator、ValidateReqParamOperator、FetchUserInfoOperator、FillRetrievalReqOperator、RoughSortOperator以及后续各个节点等为串行节点,与各自之前和之后的节点依次执行。FetchQueryCateAndBrandOperator、FetchNaturalSkuOperator、FetchTriggerInfoOperator为并行节点,并列执行。AccessRAetrievalOperator为分片节点。执行流程的最终结点是FinalOperator。Operator的划分原则是模块内聚性、可复用性高、有明确的检索阶段等。
本发明将差异较大的工作流进行拆分,不同任务类型对应不同的DAG工作流,按DAG的方式清晰表达工作流,工作流中的节点可表达串行并行分片条件等几类通用逻辑。本发明能够使业务框架与业务场景完全隔离,业务方只需要创建DAG,不需要关注调度问题,通用性好。
根据本发明实施例的第二方面,提供一种实现上述方法的装置。
图6是根据本发明实施例的任务管理的装置的主要模块的示意图。如图6所示,任务管理的装置600包括:
解析单元601,接收任务执行请求,解析任务的任务类型;
分发单元602,根据所述任务类型和预设匹配关系,确定与所述任务类型对应的DAG工作流;
执行单元603,基于所述DAG工作流执行所述任务。
可选地,所述分发单元还用于:确定与所述任务类型对应的DAG工作流之后,对所述DAG工作流进行合法性校验并确认校验通过。
可选地,所述DAG工作流中各个节点中的至少一个标记为开始节点,至少另一个标记为最终节点;
所述执行单元基于所述有向无环图处理所述待处理任务,包括:对于包括上述开始结点在内的所述最终节点之前的任意一个节点,判断所述任意一个节点是否执行成功,若成功,则跳转至任意一个节点的下一个节点;否则,跳转至所述最终节点。
可选地,所述有向无环图中各个节点中的至少一个位于所述最终节点之后。
可选地,所述各个节点包括以下至少之一:串行节点、并行节点、分片节点、条件节点。
本发明任务管理的装置采用根据任务类型和预设匹配关系确定与任务类型对应的DAG工作流、基于DAG工作流执行任务的技术手段,能够使业务框架与业务场景完全隔离,业务方只需要创建DAG工作流,不需要关注DAG工作流中各个节点之间的调度问题,降低代码复杂度,提高业务框架的通用性。
根据本发明实施例的第三方面,提供一种任务管理的电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例第一方面提供的方法。
根据本发明实施例的第四方面,提供一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例第一方面提供的方法。
图7示出了可以应用本发明实施例的任务管理的方法或任务管理的装置的示例性***架构700。
如图7所示,***架构700可以包括终端设备701、702、703,网络704和服务器705。网络704用以在终端设备701、702、703和服务器705之间提供通信链路的介质。网络704可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备701、702、703通过网络704与服务器705交互,以接收或发送消息等。终端设备701、702、703上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备701、702、703可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器705可以是提供各种服务的服务器,例如对用户利用终端设备701、702、703所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息--仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的任务管理的方法一般由服务器705执行,相应地,任务管理的装置一般设置于服务器705中。
应该理解,图7中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图8,其示出了适于用来实现本发明实施例的终端设备的计算机***800的结构示意图。图8示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图8所示,计算机***800包括中央执行单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。在RAM 803中,还存储有***800操作所需的各种程序和数据。CPU 801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
以下部件连接至I/O接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被中央执行单元(CPU)801执行时,执行本发明的***中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括:解析单元,接收任务执行请求,解析任务的任务类型;分发单元,根据所述任务类型和预设匹配关系,确定与所述任务类型对应的DAG工作流;执行单元,基于所述DAG工作流执行所述任务。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,分发单元还可以被描述为“基于所述DAG工作流执行所述任务的单元”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:接收任务执行请求,解析任务的任务类型;根据所述任务类型和预设匹配关系,确定与所述任务类型对应的DAG工作流;基于所述DAG工作流执行所述任务。
根据本发明实施例的技术方案,根据任务类型和预设匹配关系确定与任务类型对应的DAG工作流、基于DAG工作流执行任务,能够使业务框架与业务场景完全隔离,业务方只需要创建DAG工作流,不需要关注DAG工作流中各个节点之间的调度问题,降低代码复杂度,提高业务框架的通用性。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (10)
1.一种任务管理的方法,其特征在于,包括:
接收任务执行请求,解析任务的任务类型;
根据所述任务类型和预设匹配关系,确定与所述任务类型对应的DAG工作流;
基于所述DAG工作流执行所述任务。
2.如权利要求1所述的方法,其特征在于,确定与所述任务类型对应的DAG工作流之后,还包括:对所述DAG工作流进行合法性校验并确认校验通过。
3.如权利要求1所述的方法,其特征在于,所述DAG工作流中各个节点中的至少一个标记为开始节点,至少另一个标记为最终节点;
基于所述有向无环图处理所述待处理任务,包括:对于包括上述开始结点在内的所述最终节点之前的任意一个节点,判断所述任意一个节点是否执行成功,若成功,则跳转至任意一个节点的下一个节点;否则,跳转至所述最终节点。
4.如权利要求3所述的方法,其特征在于,所述有向无环图中各个节点中的至少一个位于所述最终节点之后。
5.如权利要求1-4任一所述的方法,其特征在于,所述各个节点包括以下至少之一:串行节点、并行节点、分片节点、条件节点。
6.一种任务管理的装置,其特征在于,包括:
解析单元,接收任务执行请求,解析任务的任务类型;
分发单元,根据所述任务类型和预设匹配关系,确定与所述任务类型对应的DAG工作流;
执行单元,基于所述DAG工作流执行所述任务。
7.如权利要求6所述的装置,其特征在于,所述分发单元还用于:确定与所述任务类型对应的DAG工作流之后,对所述DAG工作流进行合法性校验并确认校验通过。
8.如权利要求6所述的装置,其特征在于,所述DAG工作流中各个节点中的至少一个标记为开始节点,至少另一个标记为最终节点;
所述执行单元基于所述有向无环图处理所述待处理任务,包括:对于包括上述开始结点在内的所述最终节点之前的任意一个节点,判断所述任意一个节点是否执行成功,若成功,则跳转至任意一个节点的下一个节点;否则,跳转至所述最终节点。
9.一种任务管理的电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-5中任一所述的方法。
10.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-5中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911115455.7A CN112799797B (zh) | 2019-11-14 | 2019-11-14 | 一种任务管理的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911115455.7A CN112799797B (zh) | 2019-11-14 | 2019-11-14 | 一种任务管理的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112799797A true CN112799797A (zh) | 2021-05-14 |
CN112799797B CN112799797B (zh) | 2024-04-16 |
Family
ID=75803955
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911115455.7A Active CN112799797B (zh) | 2019-11-14 | 2019-11-14 | 一种任务管理的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112799797B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113805976A (zh) * | 2021-09-16 | 2021-12-17 | 上海商汤科技开发有限公司 | 数据处理方法及装置、电子设备及计算机可读存储介质 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2042986A1 (en) * | 2007-09-21 | 2009-04-01 | Nokia Siemens Networks Oy | Method and system for execution of a service-related process |
US20110231849A1 (en) * | 2010-03-18 | 2011-09-22 | International Business Machines Corporation | Optimizing Workflow Engines |
CN103593236A (zh) * | 2013-11-14 | 2014-02-19 | 华为技术有限公司 | 一种业务流程调度的计算机设备、方法和装置 |
KR20140102478A (ko) * | 2013-02-14 | 2014-08-22 | 한국전자통신연구원 | 워크플로우 작업 스케줄링 장치 및 그 방법 |
CN106980530A (zh) * | 2016-01-18 | 2017-07-25 | 中兴通讯股份有限公司 | 一种分布式***工作流处理方法和工作流引擎*** |
CN107179940A (zh) * | 2016-03-10 | 2017-09-19 | 阿里巴巴集团控股有限公司 | 一种任务执行的方法及装置 |
CN109491777A (zh) * | 2018-11-12 | 2019-03-19 | 北京字节跳动网络技术有限公司 | 任务执行方法、装置、设备及存储介质 |
CN109597882A (zh) * | 2018-12-19 | 2019-04-09 | 网易(杭州)网络有限公司 | 一种场景会话业务处理方法和装置 |
CN109725989A (zh) * | 2017-10-31 | 2019-05-07 | 阿里巴巴集团控股有限公司 | 一种任务执行的方法及装置 |
CN109814986A (zh) * | 2017-11-20 | 2019-05-28 | 上海寒武纪信息科技有限公司 | 任务并行处理方法、存储介质、计算机设备、装置和*** |
CN110297632A (zh) * | 2019-06-12 | 2019-10-01 | 百度在线网络技术(北京)有限公司 | 代码生成方法和装置 |
CN110362315A (zh) * | 2019-07-17 | 2019-10-22 | 中国工商银行股份有限公司 | 基于dag的软件***调度方法及装置 |
-
2019
- 2019-11-14 CN CN201911115455.7A patent/CN112799797B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2042986A1 (en) * | 2007-09-21 | 2009-04-01 | Nokia Siemens Networks Oy | Method and system for execution of a service-related process |
US20110231849A1 (en) * | 2010-03-18 | 2011-09-22 | International Business Machines Corporation | Optimizing Workflow Engines |
KR20140102478A (ko) * | 2013-02-14 | 2014-08-22 | 한국전자통신연구원 | 워크플로우 작업 스케줄링 장치 및 그 방법 |
CN103593236A (zh) * | 2013-11-14 | 2014-02-19 | 华为技术有限公司 | 一种业务流程调度的计算机设备、方法和装置 |
CN106980530A (zh) * | 2016-01-18 | 2017-07-25 | 中兴通讯股份有限公司 | 一种分布式***工作流处理方法和工作流引擎*** |
WO2017125015A1 (zh) * | 2016-01-18 | 2017-07-27 | 中兴通讯股份有限公司 | 分布式***工作流处理方法和工作流引擎*** |
CN107179940A (zh) * | 2016-03-10 | 2017-09-19 | 阿里巴巴集团控股有限公司 | 一种任务执行的方法及装置 |
CN109725989A (zh) * | 2017-10-31 | 2019-05-07 | 阿里巴巴集团控股有限公司 | 一种任务执行的方法及装置 |
CN109814986A (zh) * | 2017-11-20 | 2019-05-28 | 上海寒武纪信息科技有限公司 | 任务并行处理方法、存储介质、计算机设备、装置和*** |
CN109491777A (zh) * | 2018-11-12 | 2019-03-19 | 北京字节跳动网络技术有限公司 | 任务执行方法、装置、设备及存储介质 |
CN109597882A (zh) * | 2018-12-19 | 2019-04-09 | 网易(杭州)网络有限公司 | 一种场景会话业务处理方法和装置 |
CN110297632A (zh) * | 2019-06-12 | 2019-10-01 | 百度在线网络技术(北京)有限公司 | 代码生成方法和装置 |
CN110362315A (zh) * | 2019-07-17 | 2019-10-22 | 中国工商银行股份有限公司 | 基于dag的软件***调度方法及装置 |
Non-Patent Citations (1)
Title |
---|
唐华云 等: "工作流管理平台的设计及其在自助服务中的应用", 计算机***应用, vol. 25, no. 7, 31 July 2016 (2016-07-31) * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113805976A (zh) * | 2021-09-16 | 2021-12-17 | 上海商汤科技开发有限公司 | 数据处理方法及装置、电子设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112799797B (zh) | 2024-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110310034B (zh) | 一种应用于SaaS的服务编排、业务流程处理方法和装置 | |
US9569288B2 (en) | Application pattern discovery | |
US9910821B2 (en) | Data processing method, distributed processing system, and program | |
US10169005B2 (en) | Consolidating and reusing portal information | |
CN111090423B (zh) | 一种webhook框架***和实现主动调用、实现事件触发的方法 | |
CN111737270A (zh) | 数据处理方法及其***、计算机***和计算机可读介质 | |
CN109901987B (zh) | 一种生成测试数据的方法和装置 | |
CN110781180B (zh) | 一种数据筛选方法和数据筛选装置 | |
CN113760488B (zh) | 调度任务的方法、装置、设备和计算机可读介质 | |
CN111444077A (zh) | 一种生成流程节点测试数据的方法和装置 | |
CN112947919A (zh) | 构建业务模型和处理业务请求的方法和装置 | |
CN112817562A (zh) | 业务处理的方法和装置 | |
CN113297287B (zh) | 用户策略自动部署方法、装置及电子设备 | |
CN109218338B (zh) | 信息处理***、方法和装置 | |
CN110795331A (zh) | 软件测试的方法和装置 | |
CN110928594A (zh) | 服务开发方法和平台 | |
CN112825525B (zh) | 用于处理事务的方法和装置 | |
CN112799797B (zh) | 一种任务管理的方法和装置 | |
CN111382953A (zh) | 一种动态流程生成方法和装置 | |
CN115526587A (zh) | 一种海关报文的生成方法和装置 | |
CN113741868B (zh) | 业务计算任务处理方法、装置、计算机设备和存储介质 | |
CN113918525A (zh) | 数据交换调度方法、***、电子设备、介质及程序产品 | |
CN114169733A (zh) | 一种资源分配方法和装置 | |
CN114049065A (zh) | 一种数据处理方法、装置及*** | |
CN113516523A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |