[发明专利]软件任务管理的方法、装置、设备、介质在审
申请号: | 201910491672.X | 申请日: | 2019-06-06 |
公开(公告)号: | CN112052077A | 公开(公告)日: | 2020-12-08 |
发明(设计)人: | 钟盛军 | 申请(专利权)人: | 北京字节跳动网络技术有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48 |
代理公司: | 北京天达共和知识产权代理事务所(特殊普通合伙) 11586 | 代理人: | 关刚;薛仑 |
地址: | 100041 北京市石景山区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 软件 任务 管理 方法 装置 设备 介质 | ||
本发明提供了一种软件任务管理的方法、装置、设备、存储介质,方法包括:初始化步骤,为软件中的待执行的任务声明任务属性,任务属性包括待执行任务可接受的执行线程类型;任务排序步骤,根据任务属性确定待执行任务的调度顺序;调度步骤,根据调度顺序统一调度待执行任务的实际执行顺序、所在的执行线程类型和任务执行优先级;执行步骤,任务执行线程请求调度可执行任务并执行,其中在每次执行结束后重新发出调度请求,直至所有可执行任务执行完成。本发明在多线程执行任务中压缩可压缩任务并将所有必须任务安排到最优节点执行,实现提前主干任务或必要任务、分离延后非主干或非必要任务、尽量跑满可用算力。
技术领域
本发明涉及计算机软件技术领域,尤其涉及一种软件任务管理的方法、装置、设备、存储介质。
背景技术
在当前的各种软件中,往往存在无用代码堆叠等现象,几千行代码会涉及很多业务,都需要初始化,在启动过程中,随着代码复杂度更高,容易逻辑冲突,造成启动缓慢;并且其中一个任务可能需要几个模块初始化,以前代码没有管控,没有启动顺序的管控,可维护性低,造成并发现象,每个软件启动多个线程。同时,由于需要处理的数据庞大,为了提高处理效率,会同时利用多个线程对数据的计算、传输等不同任务进行同时执行,这就会出现在同一个应用中,非主干或非必要的任务与主干任务或必要任务同时进行,消耗终端设备的算力。因此,现有技术中的软件多线程任务管理的方式不仅会造成启动缓慢、执行混乱等问题,还会造成很大的终端设备算力浪费。
发明内容
本发明欲解决的技术问题
对于软件的任务管理,针对上述现有技术中存在的问题,需要在多线程执行任务过程中压缩所有可压缩任务并将所有必须任务安排到最优节点执行,实现提前主干任务或必要任务、分离延后非主干或非必要任务、尽量跑满可用算力。
本发明正是为了解决上述课题而完成,其目的在于提供一种简单高效的,软件任务管理的方法、装置、设备、存储介质。
用于解决问题的技术方案
为了解决上述技术问题,本发明实施例提供一种软件任务管理的方法,采用了如下所述的技术方案:
所述方法包括,初始化步骤,为软件中的待执行任务声明任务属性,所述任务属性包括所述待执行任务可接受的执行线程类型;
任务排序步骤,根据所述任务属性确定所述待执行任务的调度顺序;
调度步骤,根据所述调度顺序统一调度所述待执行任务的实际执行顺序、所在的执行线程类型和任务执行优先级;
执行步骤,任务执行线程请求调度可执行任务并执行,其中在每次执行结束后重新发出调度请求,直至所有可执行任务执行完成。
进一步地,如前所述的软件任务管理的方法,所述任务属性还包括:任务类型、任务的依赖关系、任务权重。
进一步地,如前所述的软件任务管理的方法,所述任务类型包括:可执行任务、冻结任务、取消任务、已解决任务、拒绝执行任务;
所述执行线程类型包括:主线程、全局线程、普通线程。
进一步地,如前所述的软件任务管理的方法,还包括检测步骤,检测存在任务依赖关系的待执行任务之间的依赖时长和/或依赖错误。
进一步地,如前所述的软件任务管理的方法,检测所述依赖错误包括判定相关任务是否存在冲突和/或循环,如存在则报错,如不存在则进入下一步骤。
进一步地,如前所述的软件任务管理的方法,所述任务排序步骤中,通过拓扑排序,根据所述任务类型、任务权重进行排序,得到按调度顺序排序的待执行任务队列。
进一步地,如前所述的软件任务管理的方法,所述执行步骤还包括标记定位步骤,对异步执行的任务通过标记定位来报告执行状态,通过所述执行状态调整不同任务的所述任务类型。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京字节跳动网络技术有限公司,未经北京字节跳动网络技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910491672.X/2.html,转载请声明来源钻瓜专利网。