一种任务排序方法

文档序号:6615740阅读:246来源:国知局
专利名称:一种任务排序方法
技术领域
本发明涉及媒体节目编排领域,特别是涉及一种任务排序方法。
背景技术
任务排序是指识别和文档化计划任务之间的逻辑关系。计划任务可以通 过合适的前导关系来排序逻辑关系,也需要通过任务提前和任务延后来支持 开发现实了、可行的项目进度表。可以用项目管理软件或者手工的方式来进 行任务排序,当然手工也可以和自动化技术结合使用。
在现有技术中,通常是在服务完成一条任务后,还需要判断逻辑,看看 是否需要触发下一条任务,并将任务记录插入到数据库记录中,然后按照插 入的关系,调整任务执行顺序,执行任务。
这里所说的逻辑,就是在任务顺序定义中存在典型的依赖关系,也称"强
制依赖"构建任务顺序关系过程中需要识别哪些任务之间存在依赖关系,指 任务之间所固有的前后依赖关系(自然关系),比如在文件发送任务中,先发 送文件后生成文件是不可能的;文件编辑任务中,文件素材必须在文件编辑 之前整理出来,依赖关系在某些时候、某些领域也叫做"硬逻辑";
综上所述,现有的"任务排序"功能一般由服务器端进行,在任务完成 后根据逻辑判断结果调用下一条任务,这样,使得服务器不仅需要执行任务, 还需要进行逻辑或依赖关系的判断,以及任务排序,加大了服务器端的工作 强度和负荷,降低了服务器的工作效率;而与之相对,客户端的相对闲置则 造成了资源的浪费。

发明内容
本发明实施例要解决的问题是提供一种新的任务排序方法,用于对存在 依赖关系的多个待执行的任务进程进行执行顺序排列,从而实现在任务执行
4前对存在依赖关系的待执行任务进行排序,从而减少服务器进行多次排序所造成的负担,提高任务执行效率。
为达到上述目的,本发明实施例一方面提出一种任务排序方法,用于对
存在依赖关系的多个待执行的任务进程进行执行顺序排列,包括以下步骤选取一个待执行任务,作为目标任务;
根据所述目标任务,选取所有与所述目标任务存在依赖关系的任务,作为依赖任务;
判断所述依赖任务的完成状态;
才艮据所述依赖任务的完成状态的判断结果执行所述目标任务。其中,所述选取一个待执行任务具体为
根据所有待执行任务提交的时间顺序,选取一个提交时间最早的任务。其中,所述依赖关系具体为
所述依赖任务的执行结果是所述目标任务执行的前提,则所述目标任务与所述依赖任务存在所述依赖关系。
其中,所述根据目标任务,选取所有与所述目标任务存在依赖关系的任务,包括以下步骤
判断所有任务与所述目标任务是否存在依赖关系;
当一个或多个任务与所述目标任务存在依赖关系时,选取所述任务,作为依赖任务;或,
当没有任务与所述目标任务存在依赖关系时,不选取任务,直接执行所述目标任务。
其中,所述判断依赖任务的完成状态具体包括所述依赖任务已完成;或,所述依赖任务未完成。
其中,所述根据依赖任务的完成状态的判断结果执行所述目标任务,具体为
当所述依赖任务的完成状态为未完成时,将所述目标任务的执行状态转为等待状态;或,
5当所述依赖任务的完成状态为已完成时,执行所述目标任务。
其中,所述将目标任务的执行状态转为等待状态,具体为所述目标任务暂不执行,等待所述依赖任务的完成状态变为已完成后,执行所述目标任务。
其中,所述执行目标任务,还包括将执行完成的所述目标任务的执行状态标记为已完成。另一方面,本发明实施例还提出一种计算机程序,其特征在于,包括若干任务指令用以执行前述的任务排序方法。另一方面,本发明实施例还提出一种存储介质,其特征在于,存储上述的计算机程序。
另一方面,本发明实施例还提出一种计算机设备,其特征在于,包括用以执行前述的任务排序方法的软件及与软件配合的硬件。
本发明实施例的技术方案具有以下优点,因为采用了根据依赖关系进行任务排序的方法,从而将逻辑的判断集中在客户端,令服务器只需负责具体的任务执行,各功能模块更加独立,达到了提高系统资源利用率和任务执行效率,降低服务器工作负荷,改善使用体验的效果。


图1为本发明实施例一中一种任务排序方法的流程示意图。
具体实施例方式
本发明实施例采用了根据依赖关系进行任务排序的方法,对系统内待执行的任务进行执行顺序整合,从而将逻辑的判断集中在客户端,令服务器只需负责具体的任务执行,各功能模块更加独立,达到了提高系统资源利用率和任务执行效率,降低服务器工作负荷,改善使用体验的效果。
下面结合附图和实施例,对本发明的具体实施方式
作进一步详细描述如图l所示,为本发明实施例一, 一种任务排序方法的流程示意图,
6结合演播室文件处理任务组的实例,具体为演播室发布一组任务,xml结构如下所示,包含了 3个有依赖关系的子任务
1. 打包任务taskid=978 index=0 relyindex =''
2. 文稿备4分taskid=978 index=l relyindex = |0|
3. 素材传送taskid=978 index=2 relyindex = |0|
其中,Taskid表示任务号,index表示当前子任务号,relyindex表示所依赖任务的任务号。
数据服务解析收到的xml文件,将形成3条任务记录插入到数据库表中,分别是打包任务,文稿备份任务和素材传送任务,他们的任务号(taskid )相同,子任务号(index)和依赖关系(relyindex)不同。
根据上述任务,本发明实施例提出一种任务排序方法,包括以下步骤
步骤S101、选取一个待执行任务,作为目标任务,即在三个子任务中提取一个作为目标任务,具体提取得对象则根据三个子任务提交的时间顺序来确定。
步骤S102、根据被选的目标任务,判断是否存在与该目标任务具有依赖关系的任务。
如果存在,则转入步骤S103,提取具有依赖关系的任务,例如,步骤SIOI中选取的目标任务为文稿备份服务,查询数据库记录,找到文稿备份任务(taskid=978 index=l relyindex = |0|),判断其relyindex=|0|,表示有依赖关系,其依赖于taskid二978index-0的任务,即文稿备份任务与打包任务存在依赖关系。
但是,当所选任务没有存在依赖关系的任务时,则转入步骤S107直接执行此任务。例如步骤SIOI中选取的目标任务为打包服务,查询数据库记录,找到打包任务(taskid=978 index=0 relyindex =',),判断其relyindex为空,表示没有依赖关系,则直接执行。
步骤S103、选取所有与该目标任务存在依赖关系的任务,作为依赖任务。例如,在步骤S101中,选取的目标任务为文稿备份服务,并且,在步骤S102中,判断结果为文稿备份任务与打包任务存在依赖关系后,则选取打包任务
7为依赖任务。
步骤S104、判断依赖任务的完成状态是否为已完成。即判断打包任务是否完成。
如果未完成,则转入步骤S105,等待依赖任务的完成;
如果已完成,则转入步骤S106,执行上述目标任务。
步骤S105、目标任务暂不执行,等待依赖任务的完成状态变为已完成后,再执行目标任务。即当步骤S103中选取打包任务为依赖任务后,且步骤S104判断该打包任务的执行状态为未完成时,将文稿备份任务暂停,等待打包任务的完成状态变为已完成,即转回步骤S104。
步骤S106、执行上述目标任务。
步骤S108、在目标任务执行完毕后,标定该目标任务的执行状态为已完成。
如下述程序所示,为本发明上述实施例 一 中的演播室任务排序实施程序,体现了上述的具体任务排序步骤。
<Auto.NET>
<Task name^'演播室发布"level="0" taskid="978">
<Pack index="0" dotype='*包任务"priority='T' begintime="08:30:00"endtime="18:00:00" relyindex="">
〈Publish name^'面爱面播出打包"path="W:\PackedClipsV' format="Mpeg2—I"bitrate="26214400" pubtypey才示,青"extrainfo-"无字幕"ispacklow="True" lowcreateway二"打包"lowformat="WMV" lowbitrate="819200" writefzmta="False" regdb="True"setpacktime="True" begintime="08:30:00" endtime=" 18:00:00" usersdefineexport="True">
〈ExportTrack mod:"轨道类型"videotrack="True" audiotrack="True"mostrack="True"/>
</Publish>
Object id="275" type="0" namey片反本比较"describey版本比丰交"optlevel="0"forsegnm="面对面7>
<SourceFiles>
〈File〉T:VTitles、面对面\ny\275\275.NXF</File></SourceFiles>
〈DestFile name="Channeir format="Mpeg2—I" bitrate="26214400"fileext=".AVT' vaoption="VAA" clipid="646" clippath二"W:VPackedClips、面对面\2007-03-28\275-1^-版本比较\">
〈File〉275-ny-版本比较-646.AVK/File〉
〈File〉275-ny-版本比较-646—l.WAV</File>
〈File〉275-ny-版本比较-646—2.WAV</File></DestFile>
〈DestLowFile name="Channel2" format="WMV" bitrate="819200"fileext=".WMV" vaoption="VAA" clipid="646" clippath^'Y:VWVPackedClips、面对面\2007-03-28\275-1^-版本比较\">
〈File〉275-ny-版本比较隱646.WMV〈/File〉</DestLowFile></Pack>
<DocBackup index="l" dotype二"文稿备份"relyindex="|0|">〈Object id="275" type="0" name二"片反本t匕较"creator="ny'V><Clips>
〈ClipsourcemtayWAPackedClips、面对面、2007陽03國28。75-ny-版本比较X275-ny-版本比较-646.MTA" destpath^T:^ocBackUpsWews、面对面\2007-03-28\275.Files\"/></Clips></DocBackup>
〈Upload index="2" dotype二"素材传送"relyindex="|0|">
〈CreatorDN〉CN二ny,Ol^农业频道,Ol^CCTV电视台,OU—则试自然状态,OU二测试单点登录,DC二NewautoDev,DC4ocaK/CreatorDN〉
〈ToDN〉CN二AutoCM,OU—则试应用系统,011=测试单点登录,DC:NewautoDev,DC:locaK/ToDN〉
〈BitrateType〉标清〈/BitrateType〉
〈Extralnfo〉无字幕〈/Extralnfo〉
〈Mt&W:VPackedClips、面对面。007-03-28。75-ny-版本比较。75-ny-版本比较-646.MTA</Mta>
Object id="646" type="1001" namey'275-ny-版本比專交國646" describe="275-ny-版本比较國646" optlevel="07><MessageBody></MessageBody></Upload></Task></Auto.NET>
本发明实施例的技术方案具有以下优点,因为采用了根据依赖关系进行任务排序的方法,对系统内待执行的任务进行执行顺序整合,从而将逻辑的判断集中在客户端,令服务器只需负责具体的任务执行,各功能模块更加独立,达到了提高系统资源利用率和任务执行效率,降低服务器工作负荷,改善使用体验的效果。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬
9件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体
现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应一见本发明的保护范围。
权利要求
1、一种任务排序方法,用于对存在依赖关系的多个待执行的任务进程进行执行顺序排列,其特征在于,包括以下步骤选取一个待执行任务,作为目标任务;根据所述目标任务,选取所有与所述目标任务存在依赖关系的任务,作为依赖任务;判断所述依赖任务的完成状态;根据所述依赖任务的完成状态的判断结果执行所述目标任务。
2、 如权利要求1所述任务排序方法,其特征在于,所述选取一个待执行 任务具体为根据所有待执行任务提交的时间顺序,选取一个提交时间最早的任务。
3、 如权利要求1所述任务排序方法,其特征在于,所述依赖关系具体为 所述依赖任务的执行结果是所述目标任务执行的前提,则所述目标任务与所述依赖任务存在所述依赖关系。
4、 如权利要求1所述任务排序方法,其特征在于,所述根据目标任务, 选取所有与所述目标任务存在依赖关系的任务,包括以下步骤判断所有任务与所述目标任务是否存在依赖关系; 当一个或多个任务与所述目标任务存在依赖关系时,选取所述任务,作 为依赖任务;或,当没有任务与所述目标任务存在依赖关系时,不选取任务,直接执行所 述目标任务。
5、 如权利要求1所述任务排序方法,其特征在于,所述判断依赖任务的 完成状态具体包括所述依赖任务已完成;或, 所述依赖任务未完成。
6、 如权利要求1所述任务排序方法,其特征在于,所述根据依赖任务的 完成状态的判断结果执行所述目标任务,具体为当所述依赖任务的完成状态为未完成时,将所述目标任务的执行状态转为等待状态;或,当所述依赖任务的完成状态为已完成时,执行所述目标任务。
7、 如权利要求6所述任务排序方法,其特征在于,所述将目标任务的执 行状态转为等待状态,具体为所述目标任务暂不执行,等待所述依赖任务的完成状态变为已完成后, 执行所述目标任务。
8、 如权利要求1所述任务排序方法,其特征在于,所述执行目标任务, 还包括将执行完成的所述目标任务的执行状态标记为已完成。
9、 一种计算机程序,其特征在于,包括若干任务指令用以执行前述权利要求1-8所述的任务排序方法。
10、 一种存储介质,其特征在于, 存储权利要求9所述的计算机程序。
11、 一种计算机设备,其特征在于,包括用以执行前述权利要求1-8所述的任务排序方法的软件及与软件配 合的》更件。
全文摘要
本发明公开了一种任务排序方法,用于对存在依赖关系的多个待执行的任务进程进行执行顺序排列,包括以下步骤选取一个待执行任务,作为目标任务;根据所述目标任务,选取所有与所述目标任务存在依赖关系的任务,作为依赖任务;判断所述依赖任务的完成状态;根据所述依赖任务的完成状态的判断结果执行所述目标任务。本发明实施例通过采用根据依赖关系进行任务排序的方法,将逻辑的判断集中在客户端,令服务器只需负责具体的任务执行,各功能模块更加独立,达到了提高系统资源利用率和任务执行效率,降低服务器工作负荷,改善使用体验的效果。
文档编号G06F9/46GK101470626SQ20071030433
公开日2009年7月1日 申请日期2007年12月27日 优先权日2007年12月27日
发明者刘桂平, 吴媛媛, 祎 赵 申请人:新奥特(北京)视频技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1