[发明专利]一种基于状态机的任务调度方法在审
| 申请号: | 201911185466.2 | 申请日: | 2019-11-27 |
| 公开(公告)号: | CN112860389A | 公开(公告)日: | 2021-05-28 |
| 发明(设计)人: | 张杨 | 申请(专利权)人: | 上海哔哩哔哩科技有限公司 |
| 主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/50 |
| 代理公司: | 北京英特普罗知识产权代理有限公司 11015 | 代理人: | 程超 |
| 地址: | 200433 上海市*** | 国省代码: | 上海;31 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 状态机 任务 调度 方法 | ||
1.一种基于状态机的任务调度方法,其特征在于,包括以下步骤:
S1:主节点接收待处理任务,根据预设的状态机规则设置所述待处理任务的第一当前状态和相对应的第一触发动作,其中所述第一触发动作是响应于所述第一当前状态的切换而启动的;
S2:根据所述第一触发动作的执行结果,调整所述待处理任务的所述第一当前状态和相应的第一触发动作;
S3:当所述第一触发动作的执行结果为目标结果时,设置所述待处理任务的第二当前状态和相对应的第二触发动作;
S4:根据所述第二触发动作的执行结果,调整所述待处理任务的所述第二当前状态和相应的第二触发动作;
S5:当所述第二当前状态为终止状态时,结束所述待处理任务的状态机。
2.根据权利要求1所述的任务调度方法,其特征在于,所述步骤S1包括:
主节点接收待处理任务,将所述待处理任务设置为初始化状态,并执行任务依赖检查动作,所述依赖检查动作用于确定与所述待处理任务有依赖关系的上游任务是否已经完成;
所述步骤S2包括:
若所述依赖检查动作确定所述上游任务已经完成,将所述待处理任务设置为排队状态,并启动从节点资源检查动作;其中,所述从节点资源检查动作用于确定当前是否存在可用的从节点;
若所述依赖检查动作确定所述上游任务没有完成,将所述待处理任务设置为等待状态,并启动自旋动作;其中,所述自旋动作用于再次确定与所述待处理任务有依赖关系的上游任务是否已经完成。
3.根据权利要求2所述的任务调度方法,其特征在于,所述步骤S2还包括:
若所述自旋动作确定与所述待处理任务有依赖关系的上游任务已经完成,将所述待处理任务设置为排队状态。
4.根据权利要求2或3所述的任务调度方法,其特征在于,所述步骤S3包括:
当所述从节点资源检查动作确定当前存在可用的从节点时,将所述待处理任务设置为运行状态,并启动任务下发动作,用于将所述待处理任务下发给所述可用的从节点进行计算。
5.根据权利要求4所述的任务调度方法,其特征在于,所述步骤S4包括:当所述任务下发动作完成对所述待处理任务的计算时,将所述待处理任务设置为结果获取状态,并启动结果获取动作,用于获取所述从节点对于所述待处理任务的计算结果;
当所述结果获取动作获取到所述待处理任务的计算结果时,将所述待处理任务设置为成功状态;
所述步骤S5包括:当所述待处理任务为成功状态时,结束所述待处理任务的状态机。
6.根据权利要求2所述的任务调度方法,其特征在于,所述启动自旋动作的步骤包括:
接收其中一个上游任务发送的任务完成信息;
基于所述任务完成信息,获取与所述待处理任务相关联的所有上游任务的任务完成信息,以确定所述所有上游任务是否已经完成。
7.根据权利要求1所述的任务调度方法,其特征在于,所述步骤S2还包括:当所述第一触发动作的执行结果为执行失败时,重新启动所述第一触发动作。
8.根据权利要求1所述的任务调度方法,其特征在于,所述步骤S4还包括:当所述第二触发动作的执行结果为执行失败时,将所述待处理任务重新提交给所述主节点,执行所述步骤S1。
9.一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8任一项所述方法的步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海哔哩哔哩科技有限公司,未经上海哔哩哔哩科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911185466.2/1.html,转载请声明来源钻瓜专利网。
- 上一篇:消息分发方法
- 下一篇:激光雷达、激光探测方法和包括该激光雷达的车辆





