[发明专利]一种多任务并发调度方法及系统无效
申请号: | 201110056252.2 | 申请日: | 2011-03-09 |
公开(公告)号: | CN102681894A | 公开(公告)日: | 2012-09-19 |
发明(设计)人: | 张毅 | 申请(专利权)人: | 中兴通讯股份有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/38 |
代理公司: | 北京安信方达知识产权代理有限公司 11262 | 代理人: | 解婷婷;龙洪 |
地址: | 518057 广东省深圳市南山*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 任务 并发 调度 方法 系统 | ||
技术领域
本发明涉及计算机领域,尤其涉及一种多任务并发调度方法及系统。
背景技术
软件开发者经常遇到任务调度及控制问题,比如每天指定时间进行网络设备数据上传,在数据上传时可以进行停止、暂停及恢复操作。如基于Java平台的软件开发者,可以使用Java平台提供的时钟组件或者各种任务调度组件(比如Quartz)完成任务调度工作,但这些组件并没有提供有关联关系的多任务并发调度与控制(包括:停止、暂停、恢复等操作)功能。同理,其它平台关联关系指任务之间存在并行或依赖关系。如图1所示,任务Ai、Bi、Ci(i为正整数)构成一个任务组,它们存在如下关系:
关系1:任务A1、B1、C1需要同时开始执行;
关系2:任务之间存在并行关系,比如任务A1、B1、C1需要并行执行;
关系3:任务之间存在依赖关系,比如任务A4依赖于任务A2及A3,即只有任务A2、A3都执行后,A4才能执行。
多任务的停止操作,指对处于运行状态的多任务组执行停止操作,将正在运行的任务运行完,其余没有运行的任务不再运行;
多任务的暂停操作,指对处于运行状态的多任务执行暂停操作,将正在运行的任务运行完,没有运行的任务不再运行,并记录已运行的任务及结果,为多任务恢复运行做准备;
多任务的恢复操作,指对处于暂停状态的多任务执行恢复操作,将暂停时没有运行的任务运行完,已经运行的任务不再重复运行。
目前软件开发者在解决上述有关联关系的多任务并发调度及控制问题时,一般处理方法如下:
1.引入工作流组件。但采用这种方法会造成开发难度和成本上升,需要消耗更多的系统资源(包括CPU、内存等);
2.根据具体情况将多个任务转化成一个任务,即将原有的各个任务转化为一个大任务的串行步骤。但这种方法没有很好的通用性和并发性,逻辑复杂且不方便修改维护。
发明内容
本发明的目的在于提供一种多任务并发调度方法及系统,以实现通用、简单、高效的多任务并发执行。
为解决上述问题,本发明提供了一种多任务并发调度方法,应用于可运行至少两个并行任务的调度系统中,包括:
根据所述调度系统中各任务之间的关联关系,对于存在后继任务的每一任务,记录该任务与该任务的后继任务之间的第一对应关系;
所述调度系统中设有总控任务,所述总控任务的后继任务被设置为所述各任务中不存在前驱任务的任务;
所述总控任务被调度后,并发调度所述总控任务的所有后继任务;对于所述各任务中的每一任务,在该任务执行完成后,判定该任务是否存在后继任务;若存在,则发起执行该任务的后继任务的流程。
进一步地,所述方法还包括:
根据所述各任务之间的关联关系,对于存在前驱任务的每一任务,记录该任务与该任务的前驱任务之间的第二对应关系;
所述发起执行该任务的后继任务的流程,具体包括:
根据所述第二对应关系判断该任务的后继任务的所有前驱任务是否均已执行完成;若均已执行完成,则调度该任务的后继任务;否则,待该任务的后继任务的所有前驱任务均已执行完成后再调度该任务的后继任务。
进一步地,
所述系统中至少设置有部分任务的任务执行条件;
所述调度该任务的后继任务,具体包括:判断系统中是否设置有该任务的后继任务对应的任务执行条件;若没有,则开始执行该任务的后继任务;否则,判断是否满足该任务的后继任务对应的执行条件,若满足,则开始执行该任务的后继任务;若不满足,则在满足该任务的后继任务对应的执行条件时再开始执行该任务的后继任务。
进一步地,所述方法还包括:
所述总控任务在所述调度系统中创建任务结果哈希表,所述任务结果哈希表中每条记录对应任务标识和任务结果两个字段;
当一任务执行完成后,所述调度系统将该任务的任务标识和任务结果添加到所述任务结果哈希表中;
根据所述第二对应关系判断该任务的后继任务的所有前驱任务是否均已执行完成,具体包括:
根据所述第二对应关系判断该任务的后继任务的所有前驱任务在所述任务结果哈希表中是否保存有记录。
进一步地,所述方法还包括:
所述根据所述第二对应关系判断该任务的后继任务的所有前驱任务在所述任务结果哈希表中是否保存有记录,具体包括:
在获取到所述任务结果哈希表的同步锁后,再根据所述第二对应关系判断该任务的后继任务的所有前驱任务在所述任务结果哈希表中是否保存有记录;在查找完成后,释放所述同步锁。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中兴通讯股份有限公司,未经中兴通讯股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110056252.2/2.html,转载请声明来源钻瓜专利网。