CN101470626A - 一种任务排序方法 - Google Patents
一种任务排序方法 Download PDFInfo
- Publication number
- CN101470626A CN101470626A CNA2007103043314A CN200710304331A CN101470626A CN 101470626 A CN101470626 A CN 101470626A CN A2007103043314 A CNA2007103043314 A CN A2007103043314A CN 200710304331 A CN200710304331 A CN 200710304331A CN 101470626 A CN101470626 A CN 101470626A
- Authority
- CN
- China
- Prior art keywords
- task
- dependence
- goal
- ranking method
- goal task
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种任务排序方法,用于对存在依赖关系的多个待执行的任务进程进行执行顺序排列,包括以下步骤:选取一个待执行任务,作为目标任务;根据所述目标任务,选取所有与所述目标任务存在依赖关系的任务,作为依赖任务;判断所述依赖任务的完成状态;根据所述依赖任务的完成状态的判断结果执行所述目标任务。本发明实施例通过采用根据依赖关系进行任务排序的方法,将逻辑的判断集中在客户端,令服务器只需负责具体的任务执行,各功能模块更加独立,达到了提高系统资源利用率和任务执行效率,降低服务器工作负荷,改善使用体验的效果。
Description
技术领域
本发明涉及媒体节目编排领域,特别是涉及一种任务排序方法。
背景技术
任务排序是指识别和文档化计划任务之间的逻辑关系。计划任务可以通过合适的前导关系来排序逻辑关系,也需要通过任务提前和任务延后来支持开发现实了、可行的项目进度表。可以用项目管理软件或者手工的方式来进行任务排序,当然手工也可以和自动化技术结合使用。
在现有技术中,通常是在服务完成一条任务后,还需要判断逻辑,看看是否需要触发下一条任务,并将任务记录插入到数据库记录中,然后按照插入的关系,调整任务执行顺序,执行任务。
这里所说的逻辑,就是在任务顺序定义中存在典型的依赖关系,也称“强制依赖”:构建任务顺序关系过程中需要识别哪些任务之间存在依赖关系,指任务之间所固有的前后依赖关系(自然关系),比如在文件发送任务中,先发送文件后生成文件是不可能的;文件编辑任务中,文件素材必须在文件编辑之前整理出来,依赖关系在某些时候、某些领域也叫做“硬逻辑”;
综上所述,现有的“任务排序”功能一般由服务器端进行,在任务完成后根据逻辑判断结果调用下一条任务,这样,使得服务器不仅需要执行任务,还需要进行逻辑或依赖关系的判断,以及任务排序,加大了服务器端的工作强度和负荷,降低了服务器的工作效率;而与之相对,客户端的相对闲置则造成了资源的浪费。
发明内容
本发明实施例要解决的问题是提供一种新的任务排序方法,用于对存在依赖关系的多个待执行的任务进程进行执行顺序排列,从而实现在任务执行前对存在依赖关系的待执行任务进行排序,从而减少服务器进行多次排序所造成的负担,提高任务执行效率。
为达到上述目的,本发明实施例一方面提出一种任务排序方法,用于对存在依赖关系的多个待执行的任务进程进行执行顺序排列,包括以下步骤:
选取一个待执行任务,作为目标任务;
根据所述目标任务,选取所有与所述目标任务存在依赖关系的任务,作为依赖任务;
判断所述依赖任务的完成状态;
根据所述依赖任务的完成状态的判断结果执行所述目标任务。
其中,所述选取一个待执行任务具体为:
根据所有待执行任务提交的时间顺序,选取一个提交时间最早的任务。
其中,所述依赖关系具体为:
所述依赖任务的执行结果是所述目标任务执行的前提,则所述目标任务与所述依赖任务存在所述依赖关系。
其中,所述根据目标任务,选取所有与所述目标任务存在依赖关系的任务,包括以下步骤:
判断所有任务与所述目标任务是否存在依赖关系;
当一个或多个任务与所述目标任务存在依赖关系时,选取所述任务,作为依赖任务;或,
当没有任务与所述目标任务存在依赖关系时,不选取任务,直接执行所述目标任务。
其中,所述判断依赖任务的完成状态具体包括:
所述依赖任务已完成;或,
所述依赖任务未完成。
其中,所述根据依赖任务的完成状态的判断结果执行所述目标任务,具体为:
当所述依赖任务的完成状态为未完成时,将所述目标任务的执行状态转为等待状态;或,
当所述依赖任务的完成状态为已完成时,执行所述目标任务。
其中,所述将目标任务的执行状态转为等待状态,具体为:
所述目标任务暂不执行,等待所述依赖任务的完成状态变为已完成后,执行所述目标任务。
其中,所述执行目标任务,还包括:
将执行完成的所述目标任务的执行状态标记为已完成。
另一方面,本发明实施例还提出一种计算机程序,其特征在于,
包括若干任务指令用以执行前述的任务排序方法。
另一方面,本发明实施例还提出一种存储介质,其特征在于,
存储上述的计算机程序。
另一方面,本发明实施例还提出一种计算机设备,其特征在于,
包括用以执行前述的任务排序方法的软件及与软件配合的硬件。
本发明实施例的技术方案具有以下优点,因为采用了根据依赖关系进行任务排序的方法,从而将逻辑的判断集中在客户端,令服务器只需负责具体的任务执行,各功能模块更加独立,达到了提高系统资源利用率和任务执行效率,降低服务器工作负荷,改善使用体验的效果。
附图说明
图1为本发明实施例一中一种任务排序方法的流程示意图。
具体实施方式
本发明实施例采用了根据依赖关系进行任务排序的方法,对系统内待执行的任务进行执行顺序整合,从而将逻辑的判断集中在客户端,令服务器只需负责具体的任务执行,各功能模块更加独立,达到了提高系统资源利用率和任务执行效率,降低服务器工作负荷,改善使用体验的效果。
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述:
如图1所示,为本发明实施例一,一种任务排序方法的流程示意图,结合演播室文件处理任务组的实例,具体为:演播室发布一组任务,xml结构如下所示,包含了3个有依赖关系的子任务:
1.打包任务taskid=978 index=0 relyindex=‘’
2.文稿备份taskid=978 index=1 relyindex=|0|
3.素材传送taskid=978 index=2 relyindex=|0|
其中,Taskid表示任务号,index表示当前子任务号,relyindex表示所依赖任务的任务号。
数据服务解析收到的xml文件,将形成3条任务记录插入到数据库表中,分别是打包任务,文稿备份任务和素材传送任务,他们的任务号(taskid)相同,子任务号(index)和依赖关系(relyindex)不同。
根据上述任务,本发明实施例提出一种任务排序方法,包括以下步骤:
步骤S101、选取一个待执行任务,作为目标任务,即在三个子任务中提取一个作为目标任务,具体提取得对象则根据三个子任务提交的时间顺序来确定。
步骤S102、根据被选的目标任务,判断是否存在与该目标任务具有依赖关系的任务。
如果存在,则转入步骤S103,提取具有依赖关系的任务,例如,步骤S101中选取的目标任务为文稿备份服务,查询数据库记录,找到文稿备份任务(taskid=978 index=1 relyindex=|0|),判断其relyindex=|0|,表示有依赖关系,其依赖于taskid=978 index=0的任务,即文稿备份任务与打包任务存在依赖关系。
但是,当所选任务没有存在依赖关系的任务时,则转入步骤S107直接执行此任务。例如:步骤S101中选取的目标任务为打包服务,查询数据库记录,找到打包任务(taskid=978 index=0 relyindex=‘’),判断其relyindex为空,表示没有依赖关系,则直接执行。
步骤S103、选取所有与该目标任务存在依赖关系的任务,作为依赖任务。例如,在步骤S101中,选取的目标任务为文稿备份服务,并且,在步骤S102中,判断结果为文稿备份任务与打包任务存在依赖关系后,则选取打包任务为依赖任务。
步骤S104、判断依赖任务的完成状态是否为已完成。即判断打包任务是否完成。
如果未完成,则转入步骤S105,等待依赖任务的完成;
如果已完成,则转入步骤S106,执行上述目标任务。
步骤S105、目标任务暂不执行,等待依赖任务的完成状态变为已完成后,再执行目标任务。即当步骤S103中选取打包任务为依赖任务后,且步骤S104判断该打包任务的执行状态为未完成时,将文稿备份任务暂停,等待打包任务的完成状态变为已完成,即转回步骤S104。
步骤S106、执行上述目标任务。
步骤S108、在目标任务执行完毕后,标定该目标任务的执行状态为已完成。
如下述程序所示,为本发明上述实施例一中的演播室任务排序实施程序,体现了上述的具体任务排序步骤。
<Auto.NET>
<Task name="演播室发布"level="0"taskid="978">
<Pack index="0"dotype="打包任务"priority="1"begintime="08:30:00"
endtime="18:00:00"relyindex="">
<Publish name="面爱面播出打包"path="W:\PackedClips\"format="Mpeg2_I"
bitrate="26214400"pubtype="标清"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"name="版本比较"describe="版本比较"optlevel="0"
forsegnm="面对面"/>
<SourceFiles>
<File>T:\Titles\面对面\ny\275\275.NXF</File>
</SourceFiles>
<DestFile name="Channel1"format="Mpeg2_I"bitrate="26214400"
fileext=".AVI"vaoption="VAA"clipid="646"clippath="W:\PackedClips\面对面
\2007-03-28\275-ny-版本比较\">
<File>275-ny-版本比较-646.AVI</File>
<File>275-ny-版本比较-646_1.WAV</File>
<File>275-ny-版本比较-6462.WAV</File>
</DestFile>
<DestLowFile name="Channel2"format="WMV"bitrate="819200"
fileext=".WMV"vaoption="VAA"clipid="646"clippath="Y:\W\PackedClips\面对面
\2007-03-28\275-ny-版本比较\">
<File>275-ny-版本比较-646.WMV</File>
</DestLowFile>
</Pack>
<DocBackup index="1"dotype="文稿备份"relyindex="|0|">
<Object id="275"type="0"name="版本比较"creator="ny"/>
<Clips>
<Clip sourcemta="W:\PackedClips\面对面\2007-03-28\275-ny-版本比较
\275-ny-版本比较-646.MTA"destpath="T:\DocBackUps\News\面对面
\2007-03-28\275.Files\"/>
</Clips>
</DocBackup>
<Upload index="2"dotype="素材传送"relyindex="|0|">
<CreatorDN>CN=ny,OU=农业频道,OU=CCTV电视台,OU=测试自然状态,OU=
测试单点登录,DC=NewautoDev,DC=local</CreatorDN>
<ToDN>CN=AutoCM,OU=测试应用系统,OU=测试单点登
录,DC=NewautoDev,DC=local</ToDN>
<BitrateType>标清</BitrateType>
<ExtraInfo>无字幕</ExtraInfo>
<Mta>W:\PackedClips\面对面\2007-03-28\275-ny-版本比较\275-ny-版本比较
-646.MTA</Mta>
<Objectid="646"type="1001"name="275-ny-版本比较-646"describe="275-ny-
版本比较-646"optlevel="0"/>
<MessageBody>
</MessageBody>
</Upload>
</Task>
</Auto.NET>
本发明实施例的技术方案具有以下优点,因为采用了根据依赖关系进行任务排序的方法,对系统内待执行的任务进行执行顺序整合,从而将逻辑的判断集中在客户端,令服务器只需负责具体的任务执行,各功能模块更加独立,达到了提高系统资源利用率和任务执行效率,降低服务器工作负荷,改善使用体验的效果。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
Claims (11)
1、一种任务排序方法,用于对存在依赖关系的多个待执行的任务进程进行执行顺序排列,其特征在于,包括以下步骤:
选取一个待执行任务,作为目标任务;
根据所述目标任务,选取所有与所述目标任务存在依赖关系的任务,作为依赖任务;
判断所述依赖任务的完成状态;
根据所述依赖任务的完成状态的判断结果执行所述目标任务。
2、如权利要求1所述任务排序方法,其特征在于,所述选取一个待执行任务具体为:
根据所有待执行任务提交的时间顺序,选取一个提交时间最早的任务。
3、如权利要求1所述任务排序方法,其特征在于,所述依赖关系具体为:
所述依赖任务的执行结果是所述目标任务执行的前提,则所述目标任务与所述依赖任务存在所述依赖关系。
4、如权利要求1所述任务排序方法,其特征在于,所述根据目标任务,选取所有与所述目标任务存在依赖关系的任务,包括以下步骤:
判断所有任务与所述目标任务是否存在依赖关系;
当一个或多个任务与所述目标任务存在依赖关系时,选取所述任务,作为依赖任务;或,
当没有任务与所述目标任务存在依赖关系时,不选取任务,直接执行所述目标任务。
5、如权利要求1所述任务排序方法,其特征在于,所述判断依赖任务的完成状态具体包括:
所述依赖任务已完成;或,
所述依赖任务未完成。
6、如权利要求1所述任务排序方法,其特征在于,所述根据依赖任务的完成状态的判断结果执行所述目标任务,具体为:
当所述依赖任务的完成状态为未完成时,将所述目标任务的执行状态转为等待状态;或,
当所述依赖任务的完成状态为已完成时,执行所述目标任务。
7、如权利要求6所述任务排序方法,其特征在于,所述将目标任务的执行状态转为等待状态,具体为:
所述目标任务暂不执行,等待所述依赖任务的完成状态变为已完成后,执行所述目标任务。
8、如权利要求1所述任务排序方法,其特征在于,所述执行目标任务,还包括:
将执行完成的所述目标任务的执行状态标记为已完成。
9、一种计算机程序,其特征在于,
包括若干任务指令用以执行前述权利要求1-8所述的任务排序方法。
10、一种存储介质,其特征在于,
存储权利要求9所述的计算机程序。
11、一种计算机设备,其特征在于,
包括用以执行前述权利要求1-8所述的任务排序方法的软件及与软件配合的硬件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2007103043314A CN101470626A (zh) | 2007-12-27 | 2007-12-27 | 一种任务排序方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2007103043314A CN101470626A (zh) | 2007-12-27 | 2007-12-27 | 一种任务排序方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101470626A true CN101470626A (zh) | 2009-07-01 |
Family
ID=40828116
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2007103043314A Pending CN101470626A (zh) | 2007-12-27 | 2007-12-27 | 一种任务排序方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101470626A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102508716A (zh) * | 2011-09-29 | 2012-06-20 | 用友软件股份有限公司 | 任务控制装置和任务控制方法 |
CN103902365A (zh) * | 2012-12-26 | 2014-07-02 | 华为技术有限公司 | 任务调控方法、装置和系统 |
CN105159783A (zh) * | 2015-10-09 | 2015-12-16 | 上海瀚之友信息技术服务有限公司 | 一种系统任务分配方法 |
CN106557360A (zh) * | 2016-11-09 | 2017-04-05 | 青岛海信电器股份有限公司 | 任务运行方法及装置 |
CN106648839A (zh) * | 2015-10-30 | 2017-05-10 | 北京国双科技有限公司 | 数据处理的方法和装置 |
TWI587214B (zh) * | 2016-04-21 | 2017-06-11 | 慧榮科技股份有限公司 | 資料儲存裝置、其控制單元及其任務排序方法 |
CN110489213A (zh) * | 2018-05-15 | 2019-11-22 | 华为技术有限公司 | 一种任务处理方法及处理装置、计算机系统 |
-
2007
- 2007-12-27 CN CNA2007103043314A patent/CN101470626A/zh active Pending
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102508716A (zh) * | 2011-09-29 | 2012-06-20 | 用友软件股份有限公司 | 任务控制装置和任务控制方法 |
CN103902365A (zh) * | 2012-12-26 | 2014-07-02 | 华为技术有限公司 | 任务调控方法、装置和系统 |
CN105159783A (zh) * | 2015-10-09 | 2015-12-16 | 上海瀚之友信息技术服务有限公司 | 一种系统任务分配方法 |
CN106648839A (zh) * | 2015-10-30 | 2017-05-10 | 北京国双科技有限公司 | 数据处理的方法和装置 |
CN106648839B (zh) * | 2015-10-30 | 2020-06-05 | 北京国双科技有限公司 | 数据处理的方法和装置 |
TWI587214B (zh) * | 2016-04-21 | 2017-06-11 | 慧榮科技股份有限公司 | 資料儲存裝置、其控制單元及其任務排序方法 |
US10761880B2 (en) | 2016-04-21 | 2020-09-01 | Silicon Motion, Inc. | Data storage device, control unit thereof, and task sorting method for data storage device |
CN106557360A (zh) * | 2016-11-09 | 2017-04-05 | 青岛海信电器股份有限公司 | 任务运行方法及装置 |
CN106557360B (zh) * | 2016-11-09 | 2020-06-16 | 海信视像科技股份有限公司 | 任务运行方法及装置 |
CN110489213A (zh) * | 2018-05-15 | 2019-11-22 | 华为技术有限公司 | 一种任务处理方法及处理装置、计算机系统 |
CN110489213B (zh) * | 2018-05-15 | 2022-04-05 | 华为技术有限公司 | 一种任务处理方法及处理装置、计算机系统 |
US11941434B2 (en) | 2018-05-15 | 2024-03-26 | Huawei Technologies Co., Ltd. | Task processing method, processing apparatus, and computer system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101470626A (zh) | 一种任务排序方法 | |
CN102236843B (zh) | 票务订购方法、装置和系统 | |
CN102375837B (zh) | 数据采集系统和方法 | |
CN106155812A (zh) | 一种对虚拟主机的资源管理的方法、装置、系统及电子设备 | |
WO2011060642A1 (zh) | 一种分布式综合业务自动化测试系统及方法 | |
CN101201753A (zh) | 一种多状态机管理引擎的配置管理方法 | |
CN101136932A (zh) | 一种集群式流媒体组网系统及其内容发布和服务方法 | |
CN111343590B (zh) | 一种具有高并发和高稳定性的短信发送系统 | |
CN101699479B (zh) | 一种过程运维管理方法及系统 | |
CN101226502B (zh) | 一种自动化测试方法及系统 | |
CN105224396A (zh) | 一种业务数据处理方法和装置 | |
CN112988360B (zh) | 一种基于大数据分析的任务分发系统 | |
CN105955807A (zh) | 一种任务处理系统及方法 | |
CN101470631A (zh) | 一种任务排序装置 | |
CN104636211A (zh) | 一种软件系统间的信息交互方法及中间件系统 | |
CN101751397A (zh) | 一种将文件导入数据库的方法及装置 | |
WO2010018637A1 (ja) | 業務フロー分散処理システム及び方法 | |
CN106294037A (zh) | 拷机测试方法及装置 | |
CN109710623A (zh) | 一种智能订单同步方法 | |
CN107229569A (zh) | 面向多执行技术的自动化测试集中调度执行方法及系统 | |
CN102591714A (zh) | 一种流程调用方法、系统及应用服务器 | |
CN110233892A (zh) | Cdn热点资源处理方法、系统及全局热片调度系统 | |
CN113190335B (zh) | 一种电力采集终端的多任务调度和采集方法及电力采集系统 | |
CN102739718A (zh) | 一种机顶盒质量数据处理方法及系统 | |
CN106991044A (zh) | 一种适用于分布式测试系统的测试用例调度与分发方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20090701 |