一种控制任务执行的方法与流程

文档序号:12063329阅读:227来源:国知局
一种控制任务执行的方法与流程

本发明涉及计算机技术领域,特别地涉及一种控制任务执行的方法。



背景技术:

在计算机技术领域中,随着网络的蓬勃发展,大型应用系统在开发过程中,不可避免的需要采用异步方式来完成某些功能,而异步方式的具体实现就是系统任务,即将希望异步进行的操作,封装成任务记录,采用定时线程执行任务记录。这样可以实现任务的多次重试,保证任务执行的百分百完成。现有技术中,任务系统都是定时执行的,任务执行定时线程查询待执行的任务列表,遍历该任务列表,执行每一条任务记录,如果执行成功,将该任务状态修改为完成状态;如果执行未成功,则下次再执行。具体流程图如图1所示。

但是现有技术存在以下缺点:任务执行系统都是定时执行任务,不会关注其他应用的存在,同时,也不会关注应用的运行环境等,例如,内存、CPU以及load等信息,所以任务在执行过程中,如果任务太多,执行业务复杂,会对服务器造成严重压力,影响部署在相同服务器上其他应用的服务。



技术实现要素:

有鉴于此,本发明提供一种控制任务执行的方法,通过采用划分任务类型、设置任务类型运行参数的方法来动态规划任务的执行,即在本技术方案中任务执行系统先查询待执行的任务列表,遍历任务列表,根据每条任务记录的类型查询对应的运行环境记录,判断该任务是否可以执行,如果不可以,跳过该任务记录,如果可以,执行该条 记录,通过上述方式不仅可以有效控制、调节任务的执行,还可以高效、有序的执行任务,且进一步地,还可以有效的利用系统、服务器的资源,对其他应用不会造成影响。

为实现上述目的,根据本发明的一个方面,提供了一种控制任务执行的方法,包括:遍历任务列表,判断是否存在未执行任务;根据预定的多个任务类型,为每一个所述未执行任务划分任务类型,并根据划分的任务类型查询运行参数列表,以获取包括对应于所述划分的任务类型的多个针对类型的运行参数的记录,其中,所述运行参数列表包括指定给每一个任务类型的多个针对类型的运行参数;遍历所述运行参数列表,判断是否已经完成对所述记录中的多个针对类型的运行参数的遍历,其中若未完成,则判断实际的运行参数与对应的针对类型的运行参数是否符合,若不符合,则返回遍历任务列表的步骤,若符合,继续执行遍历所述运行参数列表的步骤,以及其中若已经完成,则执行所述未执行任务并将任务状态更新为已执行。

可选地,还包括:在遍历任务列表的步骤之前,定时地执行任务执行线程,并查询数据库中的待执行的所述任务列表。

可选地,所述多个任务类型包括:紧急任务类型、高耗时任务类型、高耗内存任务类型、高耗CPU任务类型、执行时间范围类型、高耗内存与CPU任务类型和/或紧急任务与零点前完成类型。

可选地,所述多个针对类型的运行参数包括:紧急级别、耗时时长、耗内存大小、CPU范围和/或执行时间。

根据本发明的技术方案,本发明提出了一种控制任务执行的方法,通过采用划分任务类型、设置任务类型运行参数的方法来动态规划任务的执行,即在本技术方案中任务执行系统先查询待执行的任务列表,遍历任务列表,根据每条任务记录的类型查询对应的运行环境记录, 判断该任务是否可以执行,如果不可以,跳过该任务记录,如果可以,执行该条记录,通过上述方式不仅可以有效控制、调节任务的执行,还可以高效、有序的执行任务,且进一步地,还可以有效的利用系统、服务器的资源,对其他应用不会造成影响。

附图说明

附图用于更好地理解本发明,不构成对本发明的不当限定。其中:

图1是现有技术中任务系统执行任务流程图;

图2是本发明实施例的一种控制任务执行的方法的步骤流程图;

图3是本发明中的任务类型图;

图4是本发明中指定任务类型的运行参数组合图;

图5是本发明中任务执行实例图;以及

图6是本发明中基于任务执行实例的流程图。

具体实施方式

以下结合附图对本发明的示范性实施方式做出说明,其中包括本发明实施方式的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施方式做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

如图2所示,本发明实施例的一种控制任务执行的方法的步骤流程图。具体步骤如下:

步骤S1:遍历任务列表,判断是否存在未执行任务。其中,在遍历任务列表的步骤之前,定时地执行任务执行线程,并查询数据库中的待执行的任务列表。

步骤S2:根据预定的多个任务类型,如图3所示,为每一个未执行任务划分任务类型,并根据划分的任务类型查询运行参数列表,以获取包括对应于划分的任务类型的多个针对类型的运行参数的记录, 其中,运行参数列表包括指定给每一个任务类型的多个针对类型的运行参数。

具体地,任务类型包括:紧急任务类型、高耗时任务类型、高耗内存任务类型、高耗CPU任务类型、执行时间范围类型、高耗内存与CPU任务类型和/或紧急任务与零点前完成类型。由此,提高了任务类型的可选择性与多样性。

进一步地,紧急任务类型,即此种任务类型为优先级最好的任务类型,优先被执行;高耗时任务类型,即此种任务类型的任务在执行的过程中非常耗时,执行时间较长;高耗内存任务类型,即此种任务类型的任务在执行过程中比较耗内存,如文件读写、报表导出等任务;高耗CPU任务类型,即此种任务类型的任务在执行过程中较耗CPU,需要大量的计算、IO等操作;执行时间范围类型,即此种任务类型的任务规定了任务必须在那个时间段执行、或在那个时间点前执行完成即可;高耗内存与CPU类型,即此种类型在执行时,既耗内存、又耗CPU;紧急任务与零点前完成类型,即此种类型任务较为紧急,必须在每天凌晨前执行完成。

综上所述,我们可知,任务类型是由开发人员创建的,可以创建各种不同的任务类型,并对任务类型相应规定多个任务运行参数,其中,任务运行参数可包括:运行环境信息以及根据系统或服务器的运行环境信息人为规定的规则信息。任务在执行的过程中,动态的获取该种任务的任务类型,以及相应的多个任务运行参数,以此来判断任务是否应该立刻执行或者稍后执行等操作。由此,实现任务分阶段、分时段执行的灵活性与易用性。

步骤S3:遍历运行参数列表,判断是否已经完成对记录中的多个针对类型的运行参数的遍历。其中,多个针对类型的运行参数如图4所示,包括:紧急级别、耗时时长、耗内存大小、CPU范围和/或执行 时间。由此,提高了运行参数的可选择性与多样性。

具体地,紧急级别为任务的执行级别,越小优先级越高,例如,可将紧急级别划分为1-10,10个级别,其中,1为紧急级别最高,10为紧急级别最低;耗时时长为任务执行的预估耗时时间,例如,通常可将耗时时长划分为三个区间:耗时时长<3s、3s<耗时时长<5s、以及耗时时长>5s;耗内存大小为任务执行时预计使用的内存大小,例如,通常可将耗内存大小划分为三个区间:耗内存大小<1M、1M<耗内存大小<10M、以及耗内存大小>10M;CPU范围为任务在那种CPU范围内可以执行该任务,例如,通常可将CPU范围划分为三个区间:CPU范围<20%、CPU范围<50%、以及CPU范围<70%;执行时间为任务允许执行的时间区间,例如,通常可将执行时间划分为两个区间:21:00<执行时间<23:59以及执行时间>23:59。

综上所述,我们可知多个针对类型的运行参数为针对任务类型的配置可选项,既可以选择多个运行参数中的某一个对任务类型进行设置也可以选择多个运行参数中的某几个对任务类型进行设置,这样属于某种任务类型的任务在执行过程中,查询对应运行参数列表中的运行参数的记录,判断当前系统、服务器的运行环境是否满足运行参数的设置即可。

步骤S4:若未完成,则判断实际的运行参数与对应的针对类型的运行参数是否符合,若不符合,则返回遍历任务列表的步骤,若符合,继续执行遍历运行参数列表的步骤。

步骤S5:若已经完成,则执行未执行任务并将任务状态更新为已执行。

为了更好的理解本发明提出的一种控制任务执行的方法,以下为具体示例,且本发明保护范围不局限以下示例。

如图5所示,数据库预先存储除了任务记录表之外的两个表,即除了任务记录表之外的多个任务类型表以及任务运行参数表,其中,任务记录表中记录了任务的常规参数;多个任务类型表中记录了紧急任务类型、高耗时任务类型、高耗内存任务类型、高耗CPU任务类型、执行时间范围类型、高耗内存与CPU任务类型和/或紧急任务与零点前完成类型;以及多个针对类型的运行参数列表。例如,任务大小以及下载速率等为任务记录表中任务的常规参数;环境信息以及规则信息为多个针对类型的运行参数列表中的多个针对类型的运行参数。

具体地,任务执行系统,遍历任务列表,判断是否存在未执行任务;根据预定的多个任务类型,为每一个未执行任务划分任务类型,并根据划分的任务类型查询运行参数列表,以获取包括对应于划分的任务类型的多个针对类型的运行参数的记录,其中,运行参数列表包括指定给每一个任务类型的多个针对类型的运行参数;遍历运行参数列表,判断是否已经完成对记录中的多个针对类型的运行参数的遍历,其中若未完成,则判断实际的运行参数与对应的针对类型的运行参数是否符合,若不符合,则返回遍历任务列表的步骤,若符合,继续执行遍历运行参数列表的步骤,以及其中若已经完成,则执行未执行任务并将任务状态更新为已执行。例如,对于一个未执行任务划分任务类型为:高耗内存任务类型,即根据高耗内存任务类型查询运行参数列表,运行参数列表如下:

紧急级别:6;

耗时时长:>3s and<5s;

耗内存:>10M;

CPU范围:<20%;

执行时间:>21:00and<23:59

从而获取包括对应于划分的任务类型的多个针对类型的运行参数的记录。

进一步地,对包括紧急级别、耗时时长、耗内存、CPU范围以及执行时间的运行参数列表进行遍历,判断是否已经完成对记录中的多个针对类型的运行参数的遍历,其中若未完成,则判断实际的运行参数与对应的针对类型的运行参数是否符合,若不符合,则返回遍历任务列表的步骤,若符合,继续执行遍历运行参数列表的步骤,以及其中若已经完成,则执行未执行任务并将任务状态更新为已执行。

进一步地,为了更详细说明示例的工作流程,如图6所示。

步骤S601:任务执行线程。其中,任务执行线程为定时执行。由此,提高了执行任务的高效性与有序性。

步骤S602:查询数据库中的待执行任务列表。

步骤S603:遍历待执行任务列表。

步骤S604:判断是否存在未执行的任务。

步骤S605:如果存在未执行任务,则获取任务类型。

步骤S606:根据该任务类型到数据库中查询该任务的任务运行参数列表。

步骤S607:遍历任务运行参数列表。

步骤S608:判断是否有存在任务运行参数记录。

步骤S609:如果不存在,则执行该任务,更新任务的状态为完成。

步骤S610:如果存在,则获取任务运行参数。

步骤S611:判断任务执行系统的运行参数是否符合任务运行参数。

步骤S612:如果符合,则执行步骤S607,如果不符合,任务遍历结束,则执行步骤S609,任务遍历没有结束,则执行步骤S603。

本发明提供一种控制任务执行的方法,通过采用划分任务类型、设置任务类型运行参数的方法来动态规划任务的执行,即在本技术方案中任务执行系统先查询待执行的任务列表,遍历任务列表,根据每条任务记录的类型查询对应的运行环境记录,判断该任务是否可以执行,如果不可以,跳过该任务记录,如果可以,执行该条记录,通过上述方式不仅可以有效控制、调节任务的执行,还可以高效、有序的执行任务,且进一步地,还可以有效的利用系统、服务器的资源,对其他应用不会造成影响。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。

在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机 可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(POM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。

应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现;具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。

在本说明书的描述中,参考术语“一个实施例”“一些实施例”、“示例”、“具体示例”或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性标书不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解对本发明的限制,本领域的普通技术人员在不脱离本发明的原理和宗旨的情况下在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。本发明的范围由所附权利要求极其等同限定。

上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1