[发明专利]一种任务处理方法及装置在审
申请号: | 201910718570.7 | 申请日: | 2019-08-05 |
公开(公告)号: | CN110427259A | 公开(公告)日: | 2019-11-08 |
发明(设计)人: | 汪圣涛;顾海斌 | 申请(专利权)人: | 北京奇艺世纪科技有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48 |
代理公司: | 北京柏杉松知识产权代理事务所(普通合伙) 11413 | 代理人: | 李欣;马敬 |
地址: | 100080 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 计算结点 有向无环图 并发执行 任务处理 同一层 自顶向下 并发度 配置 | ||
本发明实施例提供了一种任务处理方法及装置,将待处理任务切分为多个子任务,并配置各子任务的执行顺序;根据各子任务的执行顺序,从目标子任务开始,按照从后向前的顺序,依次启动各子任务,得到待处理任务对应的有向无环图;按照自顶向下的执行顺序,依次执行有向无环图中各层计算结点的执行逻辑,其中,在执行有向无环图中各层计算结点的执行逻辑时,并发执行处于同一层的各计算结点的执行逻辑。利用自底向上的方式启动各子任务,得到有向无环图,因此,可以知道每一层的哪些计算结点可以并发执行,并发执行这些处于同一层的各计算结点的执行逻辑,可以提高任一层计算结点的执行逻辑的执行并发度,从而提高了任务的执行效率。
技术领域
本发明涉及计算机技术领域,特别是涉及一种任务处理方法及装置。
背景技术
计算机在进行某项工作时,常常需要好几个任务的协调执行才能完成,而任务的数量庞大,各任务之间的依赖关系十分复杂。除此之外,每个任务内部拥有多个子任务,各子任务之间的依赖关系也很复杂,并且,每个子任务内部又包括多种执行逻辑。
现有技术中,通常采用oozie(一种工作流配置方式)提前配置各子任务的执行顺序。但是,对于由工作流触发执行的各子任务来说,需要等待上一层各子任务的所有执行逻辑全部执行结束才可以执行下一层子任务,这可能会降低任务的执行效率。
发明内容
本发明实施例的目的在于提供一种任务处理方法及装置,以实现提高任务的执行效率。具体技术方案如下:
第一方面,本发明实施例提供了一种任务处理方法,所述方法包括:
根据预设切分规则,将待处理任务切分为多个子任务,并配置各子任务的执行顺序;
根据所述各子任务的执行顺序,从目标子任务开始,按照从后向前的顺序,依次启动所述各子任务,得到所述待处理任务对应的有向无环图,其中,所述目标子任务为所述执行顺序中的最后一个子任务,所述有向无环图中的各计算结点分别对应一个子任务;
按照自顶向下的执行顺序,依次执行所述有向无环图中各层计算结点的执行逻辑,其中,在执行所述有向无环图中各层计算结点的执行逻辑时,并发执行处于同一层的各计算结点的执行逻辑。
可选的,所述根据所述各子任务的执行顺序,从目标子任务开始,按照从后向前的顺序,依次启动所述各子任务,得到所述待处理任务对应的有向无环图,包括:
从目标子任务开始,启动当前子任务,并根据配置的所述当前子任务的各上游子任务的任务信息,并发启动所述各上游子任务,直至所述执行顺序中的第一个子任务,得到所述待处理任务对应的有向无环图。
可选的,所述按照自顶向下的执行顺序,依次执行所述有向无环图中各层计算结点的执行逻辑,包括:
针对任一计算结点,判断该计算结点是否正在执行其他任务的子任务的执行逻辑;
若是,则等待所述其他任务的子任务的执行逻辑执行结束后,执行该计算结点对应的所述待处理任务的子任务的执行逻辑。
可选的,所述方法还包括:
针对任一计算结点,统计该计算结点的执行逻辑的执行次数及执行时长;
判断所述执行次数是否大于第一预设阈值,以及所述执行时长是否大于第二预设阈值;
若所述执行次数大于所述第一预设阈值,和/或,所述执行时长大于所述第二预设阈值,则输出提示信息,所述提示信息用于提示所述计算结点执行异常。
可选的,所述方法还包括:
获取待增加的子任务,以及配置的所述待增加的子任务在所述待处理任务中的执行顺序;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇艺世纪科技有限公司,未经北京奇艺世纪科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910718570.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:基于云平台的资源调度控制方法及装置
- 下一篇:主机作业调度方法、装置及系统