[发明专利]一种任务的调度方法和装置在审
申请号: | 202011119940.4 | 申请日: | 2020-10-19 |
公开(公告)号: | CN112306471A | 公开(公告)日: | 2021-02-02 |
发明(设计)人: | 李瑞 | 申请(专利权)人: | 北京金山云网络技术有限公司 |
主分类号: | G06F8/30 | 分类号: | G06F8/30;G06F9/48 |
代理公司: | 北京华夏泰和知识产权代理有限公司 11662 | 代理人: | 曾军;刘晓燕 |
地址: | 100085 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 任务 调度 方法 装置 | ||
本申请涉及一种任务的调度方法和装置,其中,该方法包括:根据待执行的多个任务和多个任务之间的依赖关系生成多个任务对应的调度关系图;根据调度关系图设置多个任务中每个任务对应的任务线程的调度参数,其中,调度参数用于控制调度参数对应的任务线程的执行时机;将具有对应关系的任务线程和调度参数提交到线程池中,其中,线程池用于根据每个任务线程对应的调度参数执行每个任务线程。本申请解决了相关技术中任务的调度效率较低的技术问题。
技术领域
本申请涉及计算机领域,尤其涉及一种任务的调度方法和装置。
背景技术
在Java体系中,提供了ForkJoinPool和CompleteFuture框架来实现多任务的调度。而ForkJoinPool和CompleteFuture都是通过编写代码来编排任务的。对于任务数量、任务依赖是动态的场景,并无法友好处理,灵活性较低。即便是任务数量和任务依赖较为固定的场景,编写代码的过程也会浪费较多的时间,影响任务调度的效率。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本申请提供了一种任务的调度方法和装置,以至少解决相关技术中任务的调度效率较低的技术问题。
根据本申请实施例的一个方面,提供了一种任务的调度方法,包括:
根据待执行的多个任务和所述多个任务之间的依赖关系生成所述多个任务对应的调度关系图;
根据所述调度关系图设置所述多个任务中每个任务对应的任务线程的调度参数,其中,所述调度参数用于控制所述调度参数对应的任务线程的执行时机;
将具有对应关系的任务线程和调度参数提交到线程池中,其中,所述线程池用于根据每个任务线程对应的调度参数执行所述每个任务线程。
可选地,根据待执行的多个任务和所述多个任务之间的依赖关系生成所述多个任务对应的调度关系图包括:
根据待执行的多个任务和所述多个任务之间的依赖关系生成所述多个任务对应的依赖关系图;
根据所述依赖关系图生成所述调度关系图。
可选地,根据待执行的多个任务和所述多个任务之间的依赖关系生成所述多个任务对应的依赖关系图包括:
遍历所述多个任务中的每个任务作为第一任务节点;
从所述多个任务的依赖关系中获取依赖所述第一任务节点的任务作为第二任务节点;
添加从第二任务节点指向第一任务节点的边作为所述第一任务节点与所述第二任务节点之间的依赖关系,得到所述依赖关系图。
可选地,遍历所述多个任务中的每个任务作为第一任务节点包括:遍历所述多个任务中的每个任务作为第一任务;检测是否已创建所述第一任务对应的任务节点;在检测出未创建所述第一任务对应的任务节点时,创建所述第一任务节点;在检测出已创建所述第一任务对应的任务节点时,将已创建的所述第一任务对应的任务节点确定为所述第一任务节点;
从所述多个任务的依赖关系中获取依赖所述第一任务节点的任务作为第二任务节点包括:从所述多个任务的依赖关系中获取依赖所述第一任务节点的第二任务;检测是否已创建所述第二任务对应的任务节点;在检测出未创建所述第二任务对应的任务节点时,创建所述第二任务节点;在检测出已创建所述第二任务对应的任务节点时,将已创建的所述第二任务对应的任务节点确定为所述第二任务节点。
可选地,根据所述依赖关系图生成所述调度关系图包括:
将所述依赖关系图中的任务节点划分为多个层,其中,无指出边的任务节点位于所述多个层的顶层,所述多个层中除所述顶层外的其他层仅与所述其他层以上的层具有依赖关系;
删除跨越至少一层的边;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京金山云网络技术有限公司,未经北京金山云网络技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011119940.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种活动倾转的圆环铸造机
- 下一篇:一种塑料颗粒制备用加工系统