任务处理方法及装置、设备、可读介质、计算机程序产品制造方法及图纸

技术编号:27740999 阅读:41 留言:0更新日期:2021-03-19 13:34
本公开提供了一种任务处理方法,涉及计算机技术领域。具体实现方案为:根据获取的预设任务间的依赖关系,确定预设的每个任务在执行完成的情况下将触发的任务和每个任务在执行之前所需的等待任务数;针对执行完成的当前任务将触发的任务,更新等待任务数;获取更新后的等待任务数为零的任务,作为具备执行条件的任务,以执行具备执行条件的任务。本公开还提供了一种装置、设备、可读介质、计算机程序产品。根据本公开的任务处理方法,可以降低任务执行逻辑实现过程的复杂度。

【技术实现步骤摘要】
任务处理方法及装置、设备、可读介质、计算机程序产品
本公开涉及计算机
,尤其涉及一种任务处理方法及装置、设备、可读介质、计算机程序产品。
技术介绍
任务协作是指根据任务之间的依赖关系执行任务。在不同任务之间,当前任务是否执行,由当前任务所依赖的任务的执行状态来确定。例如,B任务的执行依赖A任务的完成,C任务的执行又依赖于B任务的完成和D任务的完成。随着系统中任务的增多,任务间依赖关系的设计愈发复杂,增加了任务执行逻辑实现过程的复杂度。
技术实现思路
提供了一种任务处理方法及装置、设备、可读介质、计算机程序产品。根据第一方面,提供了一种任务处理方法,包括:根据获取的预设任务间的依赖关系,确定预设的每个任务在执行完成的情况下将触发的任务和每个任务在执行之前所需的等待任务数;针对执行完成的当前任务将触发的任务,更新等待任务数;获取更新后的等待任务数为零的任务,作为具备执行条件的任务,以执行具备执行条件的任务。根据第二方面,提供了一种任务处理装置,包括:等待任务数确定模块,用于根据获取的预设任务间的依赖关系,确定预设的每个任务在执行完成的情况下将触发的任务和每个任务在执行之前所需的等待任务数;等待任务数更新模块,用于针对执行完成的当前任务将触发的任务,更新等待任务数;执行任务确定模块,用于获取更新后的等待任务数为零的任务,作为具备执行条件的任务,以执行具备执行条件的任务。根据第三方面,提供了一种电子设备,其包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述任意一种任务处理方法。根据第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,计算机指令用于使计算机执行上述任意一种任务处理方法。根据第五方面,提供了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现上述任意一种任务处理方法。根据本公开的技术,可以根据任务间的依赖关系,确定每个任务在执行完成的情况下将触发的任务和每个任务在执行之前所需的等待任务数,当一个任务执行完成,确定该任务将触发的任务和每个将触发的任务的等待任务数,更新每个将触发的任务的等待任务数,若将触发的任务的更新的等待任务数为零,则执行该将触发的任务。相较于按照任务间的依赖关系,每当一个任务执行完成,需要逐个检查该任务将触发的任务所依赖的所有任务是否完成,能够简化任务触发的执行逻辑,实现更加灵活的进行任务触发,提高执行效率。应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。附图说明附图用于更好地理解本方案,不构成对本公开的限定。其中:图1是本公开实施例提供的任务处理系统的场景示意图;图2是本公开实施例提供的一种任务处理方法的流程图;图3是本公开一实施例的任务的图结构;图4是本公开另一实施例的任务的图结构;图5a是任务A和任务B在同一线程中的任务执行情况;图5b是任务A和任务B进行线程合并后的任务执行情况;图6是本公开实施例的任务处理装置的结构示意图;图7是用来实现本公开实施例的任务处理方法的电子设备的框图。具体实施方式以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。在不冲突的情况下,本公开各实施例及实施例中的各特征可相互组合。如本文所使用的,术语“和/或”包括一个或多个相关列举条目的任何和所有组合。本文所使用的术语仅用于描述特定实施例,且不意欲限制本公开。如本文所使用的,单数形式“一个”和“该”也意欲包括复数形式,除非上下文另外清楚指出。还将理解的是,当本说明书中使用术语“包括”和/或“由……制成”时,指定存在特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或其群组。图1是本公开实施例提供的任务处理的场景示意图。如图1所示,任务处理系统可以包括:业务应用10、应用开发接口(ApplicationProgrammingInterface,API)20和任务处理系统30。在一个实施例中,任务处理系统30通过应用开发接口20与指定的业务应用10耦合。任务处理系统30可以用于定义业务应用10中任务间的依赖关系,并执行本公开实施例中的任务处理方法,以对业务应用10中的任务进行调度。图2是本公开实施例提供的一种任务处理方法的流程图。第一方面,参照图2,本公开实施例提供一种任务处理方法,包括如下步骤。S110,根据获取的预设任务间的依赖关系,确定预设的每个任务在执行完成的情况下将触发的任务和每个任务在执行之前所需的等待任务数。S120,针对执行完成的当前任务将触发的任务,更新等待任务数。S130,获取更新后的等待任务数为零的任务,作为具备执行条件的任务,以执行具备执行条件的任务。根据本公开实施例的任务处理方法,可以根据任务间的依赖关系,确定每个任务在执行完成的情况下将触发的任务和每个任务在执行之前所需的等待任务数,当一个任务执行完成,确定该任务将触发的任务和每个将触发的任务的等待任务数,更新每个将触发的任务的等待任务数,若将触发的任务的更新的等待任务数为零,则执行该将触发的任务。相较于按照任务间的依赖关系的处理方法中,每当一个任务执行完成,需要逐个检查该任务将触发的任务所依赖的所有任务是否完成,能够简化任务触发的执行逻辑,实现更加灵活的进行任务触发,提高执行效率。在一些实施例中,步骤S110具体可以包括如下步骤。S11,根据获取的预设任务间的依赖关系,确定预先创建的每个任务所依赖的任务。S12,根据每个任务所依赖的任务,构建预设任务的有向图结构,有向图结构中的每个节点用于指示一个任务,节点之间的有向边用于指示任务间的依赖关系和执行先后顺序。S13,按照任务间的依赖关系和执行先后顺序,确定每个任务的执行完成将触发的任务,并将每个任务所依赖的任务的数量,作为执行每个任务之前所需的等待任务数。在该实施例中,可以通过预设的任务间的依赖关系,构建有向图结构的任务信息,从而实现任务间的依赖关系和执行先后顺序的结构化数据处理,得到任务间的依赖关系的图结构数据,方便后续能够快速高效地在图结构的结构化数据中获取每个任务所依赖的任务、执行每个任务之前所需的等待的任务和任务执行先后顺序,提高了任务信息的获取效率,并可以保证任务数据的一致性。下面通过图3,描述根据任务间依赖关系生成图结构数据的具体过程。本文档来自技高网...

【技术保护点】
1.一种任务处理方法,其特征在于,包括:/n根据获取的预设任务间的依赖关系,确定预设的每个任务在执行完成的情况下将触发的任务和所述每个任务在执行之前所需的等待任务数;/n针对执行完成的当前任务将触发的任务,更新等待任务数;/n获取更新后的所述等待任务数为零的任务,作为具备执行条件的任务,以执行所述具备执行条件的任务。/n

【技术特征摘要】
1.一种任务处理方法,其特征在于,包括:
根据获取的预设任务间的依赖关系,确定预设的每个任务在执行完成的情况下将触发的任务和所述每个任务在执行之前所需的等待任务数;
针对执行完成的当前任务将触发的任务,更新等待任务数;
获取更新后的所述等待任务数为零的任务,作为具备执行条件的任务,以执行所述具备执行条件的任务。


2.根据权利要求1所述的方法,其特征在于,所述根据获取的预设任务间的依赖关系,确定预设的每个任务在执行完成的情况下将触发的任务和所述每个任务在执行之前所需的等待任务数,包括:
根据获取的预设任务间的依赖关系,确定预先创建的每个任务所依赖的任务;
根据所述每个任务所依赖的任务,构建所述预设任务的有向图结构,所述有向图结构中的每个节点用于指示一个任务,节点之间的有向边用于指示所述任务间的依赖关系和执行先后顺序;
按照所述任务间的依赖关系和执行先后顺序,确定所述每个任务的执行完成将触发的任务,并将所述每个任务所依赖的任务的数量,作为执行所述每个任务之前所需的等待任务数。


3.根据权利要求2所述的方法,其特征在于,
在所述预设任务的有向图结构中,第一节点用于指示第一任务,第一节点的节点信息包括第一节点的每个依赖节点和每个通知节点;
所述依赖节点用于指示第一任务所依赖的任务,所述通知节点用于指示第一任务完成后将触发的继续执行的任务。


4.根据权利要求1-3中任一项所述的方法,其特征在于,执行完成的所述当前任务的数量大于或等于1;所述针对执行完成的当前任务将触发的任务,更新等待任务数,包括:
依次获取执行完成的每个当前任务作为第一任务,将每次获取的第一任务在执行完成的情况下将触发的任务作为第二任务;
对所述第二任务在执行之前所需的等待任务数减一,得到所述第二任务的新的等待任务数,以对执行完成的每个当前任务将触发的任务进行等待任务数的更新。


5.根据权利要求1-3中任一项所述的方法,其特征在于,所述预设任务间的依赖关系是通过N条依赖信息表示的依赖关系,每条所述依赖信息用于指示预设的下游任务依赖预设的上游任务,N为大于或等于2的整数;
根据获取的预设任务间的依赖关系,所述方法还包括:
获取第i条依赖信息,其中,i为大于或等于1且小于或等于N的整数;
为第i条依赖信息中的下游任务生成第一索引数据,在所述第一索引数据中,所述第i条依赖信息中的上游任务的取值为预定值;
获取第j条依赖信息,其中,j为大于或等于1且小于或等于N的整数,且j不等于i;
在所述第j条依赖信息中的上游任务等于所述第i条依赖信息中的下游任务的情况下,判断所述第一索引数据取值为所述预定值的任务中,是否包含所述第j条依赖信息中的下游任务;
在判定包含所述第j条依赖信息中的下游任务的情况下,确定所述预设任务间的依赖关系成环。


6.根据权利要求5所述的方法,其特征在于,在所述第j条依赖信息中的上游任务等于所述第i...

【专利技术属性】
技术研发人员:胡滨雷志海杜英豪熊超逄增耀胡小梅
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1