自适应数据请求处理方法、装置、任务调度器及系统.pdf

上传人:Y94****206 文档编号:6264911 上传时间:2019-05-27 格式:PDF 页数:16 大小:1.22MB
返回 下载 相关 举报
摘要
申请专利号:

CN201510751805.4

申请日:

2015.11.06

公开号:

CN105389207A

公开日:

2016.03.09

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效IPC(主分类):G06F 9/48申请日:20151106|||公开

IPC分类号:

G06F9/48

主分类号:

G06F9/48

申请人:

成都视达科信息技术有限公司

发明人:

陈朱尧; 敬斌

地址:

610000四川省成都市高新区世纪城南路599号6栋16层1601-1604号

优先权:

专利代理机构:

北京轻创知识产权代理有限公司11212

代理人:

刘洵

PDF下载: PDF下载
内容摘要

本发明公开了一种自适应数据请求处理方法,包括:获取待执行的数据请求队列中的至少两个数据请求处理任务之间的依赖关系并建立依赖关系表;以及根据所述依赖关系表,统一自适应地调度所述数据请求队列中的所述至少两个数据请求处理任务并驱动执行。本发明同时公开了执行该方法的自适应数据请求处理装置、任务调度器及系统。本发明使得在具有依赖关系的任务队列执行时,获得了尽可能高的并发度,提高了任务执行效率,高效地完成数据请求处理,同时利于后期维护和扩展。

权利要求书

1.一种自适应数据请求处理方法,其特征在于,包括以下步骤:
获取待执行的数据请求队列中的至少两个数据请求处理任务之间的依赖关
系并建立依赖关系表;以及
根据所述依赖关系表,统一自适应地调度所述数据请求队列中的所述至少
两个数据请求处理任务并驱动执行。
2.根据权利要求1所述的自适应数据请求处理方法,其特征在于,所述根
据所述依赖关系表,统一调度所述数据请求队列中的所述至少两个数据请求处
理任务并驱动执行的步骤,具体包括:
根据预定的调度规则,将所述数据请求队列中满足所述预定的调度规则的
数据请求处理任务调度加入到执行队列以驱动执行;
其中,所述预定的调度规则为:数据请求处理任务处于非错误状态,非运
行状态,非执行完成状态并且它所依赖的其他数据请求处理任务全部处于执行
完成状态。
3.根据权利要求2所述的自适应数据请求处理方法,其特征在于,所述获
取待执行的数据请求队列中的至少两个数据请求处理任务之间的依赖关系并建
立依赖关系表的步骤,具体还包括以下子步骤:
建立所述依赖关系表的同时或之后,建立所述至少两个数据请求处理任务
中每个数据请求处理任务的调用接口;其中所有数据请求处理任务的调用接口
相同;
相应的,所述根据所述依赖关系表,统一自适应地调度所述数据请求队列
中的所述至少两个数据请求处理任务并驱动执行的步骤,具体包括如下子步骤:
根据所述依赖关系表和每个数据请求处理任务的所述调用接口,将所述数
据请求队列中满足所述预定的调度规则的数据请求处理任务调度加入到执行队
列以驱动执行。
4.根据权利要求2或3所述的自适应数据请求处理方法,其特征在于,还
包括:
当检测到所述数据请求队列执行到出口任务时,结束所述数据请求队列的
执行;其中,所述出口任务为所述数据请求队列中最后一个处于执行完成状态
的数据请求处理任务。
5.根据权利要求4所述的自适应数据请求处理方法,其特征在于,还包括:
当检测到所述数据请求队列执行过程中出现预定错误时,停止所述数据请
求队列的执行,并将所述预定错误返回给调用者。
6.一种自适应数据请求处理装置,其特征在于,包括:
依赖关系建立单元,用于获取待执行的数据请求队列中的至少两个数据请
求处理任务之间的依赖关系并建立依赖关系表;
任务调度执行单元,用于根据所述依赖关系表,统一自适应地调度所述数
据请求队列中的所述至少两个数据请求处理任务并驱动执行。
7.根据权利要求6所述的自适应数据请求处理装置,其特征在于,所述任
务调度执行单元包括:
第一调度执行单元,用于根据预定的调度规则,将所述数据请求队列中满
足所述预定的调度规则的数据请求处理任务调度加入到执行队列以驱动执行;
其中,所述预定的调度规则为:数据请求处理任务处于非错误状态,非运
行状态,非执行完成状态并且它所依赖的其他数据请求处理任务全部处于执行
完成状态。
8.根据权利要求7所述的自适应数据请求处理装置,其特征在于,所述依
赖关系建立单元包括:
调用接口建立单元,用于在建立所述依赖关系表的同时或之后,建立所述
至少两个数据请求处理任务中每个数据请求处理任务的调用接口;其中所有数
据请求处理任务的调用接口相同;
所述任务调度执行单元还包括:
第二调度执行单元,用于根据所述依赖关系表和每个数据请求处理任务的
所述调用接口,将所述数据请求队列中满足所述预定的调度规则的数据请求处
理任务调度加入到执行队列以驱动执行。
9.根据权利要求7或8所述的自适应数据请求处理装置,其特征在于,还
包括:
任务队列结束单元,用于当检测到所述数据请求队列执行到出口任务时,
结束所述数据请求队列的执行;其中,所述出口任务为所述数据请求队列中最
后一个处于执行完成状态的数据请求处理任务。
10.根据权利要求9所述的自适应数据请求处理装置,其特征在于,还包
括:
错误处理单元,用于当检测到所述数据请求队列执行过程中出现预定错误
时,停止所述数据请求队列的执行,并将所述预定错误返回给调用者。
11.一种任务调度器,其特征在于,包括权利要求6-10任一项所述的自适
应数据请求处理装置。
12.一种自适应数据请求处理系统,其特征在于,包括权利要求11所述的
任务调度器。

说明书

自适应数据请求处理方法、装置、任务调度器及系统

技术领域

本发明涉及数据处理领域,特别涉及一种自适应数据请求处理方法、装置、
任务调度器及系统。

背景技术

一个涉及数据处理的系统或软件(如应用程序)通常包涵很多的数据请求
和/或数据处理任务,数据请求和处理的合理和高效是十分重要的,可以能使
得整个系统的体验提升到最佳,使用户得到更好的体验。

现有的数据请求处理任务(下称请求或任务)处理过程一般是将下一个请
求的启动放到了所依赖的上一个请求的执行结果中,当下一个请求获得上一个
请求的执行结果时,将数据传递到再下一个的请求当中,当前置依赖的上一个
请求执行完成时,启动再下一个数据请求任务。

比如,在视频播放任务处理中,有如下数据请求处理任务队列,任务A:
获取其他任务的入口地址;任务B:根据A任务返回的地址请求同步服务器时
间;任务C:根据A任务返回的地址请求自动登录;任务D:根据任务C自动登
录的用户信息和任务B同步的服务器时间,使用任务A返回的地址请求一个时
移的播放串。

上述任务队列包含A、B、C、D四个任务,启动B需要A的结果,启动C
需要A的结果,启动D则需要A的地址、B的服务器时间、C的用户信息,所
以他们之间的依赖关系就是A没有依赖,B依赖于A,C依赖于A,D依赖于ABC。

较为传统的请求处理方式为:首先是A任务启动,执行完毕时再启动B,B
执行完毕时请求C,C执行完毕最后请求D,D执行完毕则整个任务队列执行完
毕。另外也可以调整B和C的执行顺序,可以看出整个任务队列的执行过程是
顺序的。这样的方式在具有依赖关系的任务队列执行时,其处理的逻辑关系是
由一个或多个任务驱动下一个任务并顺序执行,任务间的耦合度较高,不能做
到较高的任务并发执行,导致处理效率较低。

另外,当任务之间的依赖关系改变时,任务间的依赖关系难以明确,调整
任务间的依赖关系的灵活度较低,进一步导致处理效率较低且不方便系统后期
维护和扩展。以上述举例为例说明,如果在上述任务中间增加一个步骤是去获
取播放列表的话,那么涉及到的几个任务之间的依赖关系改变较多,要做修改
的话,易出错,任务间的依赖关系难以明确,通过实际的实现代码没有办法明
显的看出他们之间的依赖关系,进而难以灵活地调整驱动任务执行。

发明内容

本发明的目的在于克服现有技术中所存在的上述不足,提供一种自适应数
据请求处理方法、装置、任务调度器及系统,旨在具有依赖关系的任务队列执
行时,获得尽可能高的并发度,提高任务执行效率,高效地完成数据请求处理,
同时利于数据处理系统的后期维护和扩展。

为了实现上述发明目的,本发明采用的技术方案是:

一方面,本发明实施例提供一种自适应数据请求处理方法,包括以下步骤:

获取待执行的数据请求队列中的至少两个数据请求处理任务之间的依赖
关系并建立依赖关系表;以及

根据所述依赖关系表,统一自适应地调度所述数据请求队列中的所述至少
两个数据请求处理任务并驱动执行。

在一个实施例中,所述根据所述依赖关系表,统一调度所述数据请求队列
中的所述至少两个数据请求处理任务并驱动执行的步骤,具体包括:

根据预定的调度规则,将所述数据请求队列中满足所述预定的调度规则的
数据请求处理任务调度加入到执行队列以驱动执行;

其中,所述预定的调度规则为:数据请求处理任务处于非错误状态,非运
行状态,非执行完成状态并且它所依赖的其他数据请求处理任务全部处于执行
完成状态。

在一个实施例中,所述获取待执行的数据请求队列中的至少两个数据请求
处理任务之间的依赖关系并建立依赖关系表的步骤,具体还包括以下子步骤:

建立所述依赖关系表的同时或之后,建立所述至少两个数据请求处理任务
中每个数据请求处理任务的调用接口;其中所有数据请求处理任务的调用接口
相同;

相应的,所述根据所述依赖关系表,统一自适应地调度所述数据请求队列
中的所述至少两个数据请求处理任务并驱动执行的步骤,具体包括如下子步
骤:

根据所述依赖关系表和每个数据请求处理任务的所述调用接口,将所述数
据请求队列中满足所述预定的调度规则的数据请求处理任务调度加入到执行
队列以驱动执行。

在一个实施例中,该方法还包括:当检测到所述数据请求队列执行到出口
任务时,结束所述数据请求队列的执行;其中,所述出口任务为所述数据请求
队列中最后一个处于执行完成状态的数据请求处理任务。

进一步的,该方法还包括:当检测到所述数据请求队列执行过程中出现预
定错误时,停止所述数据请求队列的执行,并将所述预定错误返回给调用者。

另一方面,本发明实施例提供一种自适应数据请求处理装置,包括:

依赖关系建立单元,用于获取待执行的数据请求队列中的至少两个数据请
求处理任务之间的依赖关系并建立依赖关系表;

任务调度执行单元,用于根据所述依赖关系表,统一自适应地调度所述数
据请求队列中的所述至少两个数据请求处理任务并驱动执行。

在一个实施例中,所述任务调度执行单元包括:

第一调度执行单元,用于根据预定的调度规则,将所述数据请求队列中满
足所述预定的调度规则的数据请求处理任务调度加入到执行队列以驱动执行;

其中,所述预定的调度规则为:数据请求处理任务处于非错误状态,非运
行状态,非执行完成状态并且它所依赖的其他数据请求处理任务全部处于执行
完成状态。

在一个实施例中,所述依赖关系建立单元包括:

调用接口建立单元,用于在建立所述依赖关系表的同时或之后,建立所述
至少两个数据请求处理任务中每个数据请求处理任务的调用接口;其中所有数
据请求处理任务的调用接口相同;

所述任务调度执行单元还包括:

第二调度执行单元,用于根据所述依赖关系表和每个数据请求处理任务的
所述调用接口,将所述数据请求队列中满足所述预定的调度规则的数据请求处
理任务调度加入到执行队列以驱动执行。

在一个实施例中,该装置还包括:任务队列结束单元,用于当检测到所述
数据请求队列执行到出口任务时,结束所述数据请求队列的执行;其中,所述
出口任务为所述数据请求队列中最后一个处于执行完成状态的数据请求处理
任务。

在一个实施例中,该装置还包括:错误处理单元,用于当检测到所述数据
请求队列执行过程中出现预定错误时,停止所述数据请求队列的执行,并将所
述预定错误返回给调用者。

再一方面,本发明实施例提供一种任务调度器,包括上述任一实施例中的
自适应数据请求处理装置。

又一方面,本发明实施例提供一种自适应数据请求处理系统,包括上述实
施例中的任务调度器。

与现有技术相比,本发明的有益效果:

本发明实施例提供的技术方案,通过获取待执行的数据请求队列中的至少
两个数据请求处理任务之间的依赖关系并建立依赖关系表,再根据所述依赖关
系表,统一自适应地调度所述数据请求队列中的所述至少两个数据请求处理任
务并驱动执行。本发明通过将现有的基于一个或多个任务驱动下一个任务并顺
序执行的逻辑抽离出来,在具有依赖关系的任务队列执行时,获取待执行的数
据请求队列中的任务之间的依赖关系并建立依赖关系表,然后可由专门的调度
处理单元根据所述依赖关系表,统一自适应地调度所述数据请求队列中的任务
并执行,这样可获得尽可能高的并发度,提高了任务执行效率,高效地完成了
数据请求处理,当任务之间的依赖关系改变时,只需修改所述依赖关系表就可
以实现后续的调度执行,利于后期维护和扩展。

附图说明:

图1是本发明实施例中的自适应数据请求处理方法流程图;

图2是本发明一具体实施例中任务队列执行时的第一状态转移示意图;

图3是本发明一具体实施例中任务队列执行时的第二状态转移示意图;

图4是本发明实施例中的自适应数据请求处理装置的示意图;

图5是本发明实施例中的另一自适应数据请求处理装置的示意图;

图6是本发明实施例中的又一自适应数据请求处理装置的示意图;

图7是本发明实施例中的任务调度器的示意图;

图8是本发明实施例中的自适应数据请求处理系统的示意图。

具体实施方式

下面结合具体实施方式对本发明作进一步的详细描述。但不应将此理解为
本发明上述主题的范围仅限于以下的实施例,凡基于本发明内容所实现的技术
均属于本发明的范围。

本发明的核心思想是:把现有的在一个任务或多个任务里面驱动下一个任
务的逻辑抽离出来,形成依赖关系表,由专门的处理单元(如任务调度器)根
据依赖关系表统一来调度任务执行,降低任务间的耦合度,获得尽可能高的并
发度,进而提高任务执行效率,同时提高调整任务依赖关系的灵活度,只需要
维护依赖关系表,就可完成对任务的调度。即通过任务调度的思想将顺序执行
的数据请求处理任务重新整理,并完成调度执行,获得尽可能高的并发度,提
高任务执行效率,使之更具灵活性和扩展性。下面结合附图具体说明本发明。

如图1所示,为本发明实施例示出的一种自适应数据请求处理方法流程图,
该方法由调度器来执行,包括以下步骤:

S101、获取待执行的数据请求队列中的至少两个数据请求处理任务
(以下简称任务)之间的依赖关系并建立依赖关系表。

S102、调度器根据所述依赖关系表,统一自适应地调度所述数据请求
队列中的所述至少两个数据请求处理任务并驱动执行。

本发明通过将现有的基于一个或多个任务驱动下一个任务并顺序执行的
逻辑抽离出来,在具有依赖关系的任务队列执行时,获取待执行的数据请求队
列中的任务之间的依赖关系并建立依赖关系表,然后由专门的调度处理单元根
据所述依赖关系表,统一自适应地调度所述数据请求队列中的任务并执行,这
样可获得尽可能高的并发度,提高了任务执行效率,高效地完成了数据请求处
理,当任务之间的依赖关系改变时,只需修改所述依赖关系表就可以实现后续
的调度执行,利于后期维护和扩展。

在上述实施例的基础上,在另一个实施例中,所述根据所述依赖关系表,
统一调度所述数据请求队列中的所述至少两个数据请求处理任务并驱动执行
的步骤(即步骤S102),具体包括:根据预定的调度规则,将所述数据请
求队列中满足所述预定的调度规则的数据请求处理任务调度加入到执行队列
以驱动执行;其中,所述预定的调度规则为:数据请求处理任务处于非错误状
态,非运行状态,非执行完成状态并且它所依赖的其他数据请求处理任务全部
处于执行完成状态。

具体的,本发明实施例中任务有三个状态:1、错误状态,2、正在执行状
态,3、执行完成状态,这三个状态一起构成了一个任务的特征。调度器在数
据请求队列中筛选出可以执行的任务,通知该任务开始执行,并更改当前任务
的执行状态,当任务执行完毕时,处理和保存数据,更新数据请求状态。当一
个任务处于非错误状态,非运行状态,非执行完成状态并且它所依赖的任务全
部处于完成状态时,此任务处于可以执行状态。一个任务的执行是根据所依赖
任务的状态来决定的,这个状态是由统一管理和调度的调度器来完成的。所述
调度器的调度原则是一个任务的所有依赖的任务都全部执行完成(即处于执行
完成状态)之后,该任务就能被调度到执行队列,进行执行。在处理过程中,
任务执行的顺序是根据当前已经完成任务的状态情况来筛选出后面可以执行
的任务,顺序事先是不能指定的,而是根据实际执行过程产生,调度器根据任
务的依赖关系调度执行任务,并检测任务状态自动完成整个调度管理。每个任
务执行的结果要进行保存和设置,如设置状态标识以标记任务执行的状态。

以背景技术部分提到的例子为例,A、B、C、D四个任务,B和C都依赖于
A任务的执行结果,所以B和C任务会保存A任务的标识ID,当A任务顺利执
行完成时,A任务标记成已执行完成状态,调度器会到任务队列中寻找下一组
可以执行的任务,寻找的过程为当遍历到A时,由于A已经是执行完成状态,
则不加入下一组执行的任务队列,遍历到B时,B里面保存了依赖的任务A的
ID,到任务队列中找寻A的状态,A任务已经完成,而且B也没有其他依赖的
任务,并且B处于未执行状态,则B达成加入执行队列的条件,将B加入执行
队列,类似的,C也根据上述筛选的规则将被加入到执行队列。而D任务依赖
ABC三个任务,根据前述的规则,虽然A执行完成,但是B和C都未执行完成,
则D不能到达加入执行队列的条件,所以D在本次筛选中不能加入,当ABC三
个任务都执行完成之后,D才能达到加入执行队列的标准,这时才能加入执行
队列中,并执行。

在上述实施例的基础上,在又一个实施例中,所述获取待执行的数据请求
队列中的至少两个数据请求处理任务之间的依赖关系并建立依赖关系表的步
骤(即步骤S101),具体还包括以下子步骤:建立依赖关系表的同时或之
后,建立所述至少两个数据请求处理任务中每个数据请求处理任务的调用接
口;其中所有数据请求处理任务的调用接口相同;相应的,所述根据所述依赖
关系表,统一自适应地调度所述数据请求队列中的所述至少两个数据请求处理
任务并驱动执行的步骤,具体包括如下子步骤:根据所述依赖关系表和每个数
据请求处理任务的所述调用接口,将所述数据请求队列中满足所述预定的调度
规则的数据请求处理任务调度加入到执行队列以驱动执行。

具体的,本实施例中按照任务接口定义数据请求任务,任务有三种执行状
态即错误状态,执行中即正在执行状态或运行状态和执行完毕即执行完成状
态。任务调度时,任务可以做各自的事情,但是必须具有相同的调用接口,也
就是说只有实现了这样调用接口的任务才能加入调度器,不具有这样的接口的
任务将不能被调度器所接受,这样一来调度器的调用就是统一的,对于调度器
来说,具体的每个任务各自的实现就是透明的,方便统一调度管理每个任务。

可选的,在一个实施例中,该方法还包括:当检测到所述数据请求队列执
行到出口任务时,结束所述数据请求队列的执行;其中,所述出口任务为所述
数据请求队列中最后一个处于执行完成状态的数据请求处理任务。本实施例中
定义数据请求处理队列执行的出口任务,当此出口任务执行完成时,则认为整
个请求队列执行完毕,将定义的数据请求任务加入到调度器中,使得调度器能
够按照定义的规则自适应地完成数据请求任务的调度。当一个任务所有依赖的
任务的执行状态是执行完成状态时,当前任务就会被调度器查询出来,并调用
执行,直到执行到请求队列的出口。

可选的,在一个实施例中,进一步的,该方法还包括:当检测到所述数据
请求队列执行过程中出现预定错误时,停止所述数据请求队列的执行,并将所
述预定错误返回给调用者。例如当有致命错误发生时,任务会通知调度器终止
任务队列,反馈给调用者,进行相关处理。致命错误表示当前任务队列由于某
个任务在执行过程中,出现了错误,这个任务错误了,导致整个队列的执行没
有必要再继续往下执行,这个错误称之为致命错误。当调度器收到了这个错误
时,即不在从任务队列里面继续寻找可执行的任务,而是根据错误的标识码,
将错误返回给调用者,进行相关处理,以避免不必要的执行时间,提高任务执
行效率。

本发明实施例提供的技术方案,通过获取待执行的数据请求队列中的至少
两个数据请求处理任务之间的依赖关系并建立依赖关系表,再根据所述依赖关
系表,统一自适应地调度所述数据请求队列中的所述至少两个数据请求处理任
务并驱动执行。本发明通过将现有的基于一个或多个任务驱动下一个任务并顺
序执行的逻辑抽离出来,在具有依赖关系的任务队列执行时,获取待执行的数
据请求队列中的任务之间的依赖关系并建立依赖关系表,然后可由专门的调度
处理单元根据所述依赖关系表,统一自适应地调度所述数据请求队列中的任务
并执行,这样可获得尽可能高的并发度,提高了任务执行效率,高效地完成了
数据请求处理,当任务之间的依赖关系改变时,只需修改所述依赖关系表就可
以实现后续的调度执行,利于后期维护和扩展。

下面再结合一个具体实施例说明本发明:

本实施例中以四个任务为例说明,具体任务数量不限制,该实施例不用于
限定本发明。参看图2和图3,具有依赖关系的任务A、B、C和D,其依赖
关系为A没有依赖任务,B依赖A,C依赖A,D依赖A、B、C,将具有如
下依赖关系表的任务队列加入到调度器中:


需要说明的是,图2、图3中的isError,isRunning,isFinished表示任
务执行状态,isError=true表示的是任务处于错误状态,isError=false表示
任务处于非错误状态;isRunning=true表示的是任务正在运行,即运行状态,
isRunning=false表示的是任务未正在运行,即非运行状态,isFinished=true
表示的是任务已经执行完毕,即执行完成状态。isFinished=false表示的是任
务未执行完毕,即非执行完成状态。

将具有如上依赖关系的任务加入到调度器中时,则会有图2中第1个状态
产生。此时调度器寻找可以执行的任务,遍历到A时,A处于非错误,非运行,
非完成状态,并且没有依赖的任务,则A满足加入执行队列的条件。B和C都
处于非错误,非运行,非完成状态,但是A不处于完成状态,所以B和C不满
足加入执行队列的条件,同样D处于非错误,非运行,非完成状态,但ABC均
不处于完成状态,也不满足加入执行对立的条件,所以本次只A任务加入,清
空可执行任务队列。

调度器将A的状态改为正在运行状态,即图2中第2个状态产生。

当A任务执行完毕时,任务会更改任务的状态为执行完成状态,即图2中
的状态3。

此时A处于非错误状态,非运行状态,执行完成状态,不满足加入执行队
列的条件,B和C处于非错误,非运行,非完成状态并且A处于完成状态,所
以B和C都满足加入执行队列的条件,D非错误,非运行,非完成状态,但是
由于B和C都未执行完成,所以D不满足加入执行队列的条件。本次B和C任
务加入,清空可执行任务队列。此时B和C并发执行。如图2中的状态4。

当B和C任意一个执行完成时,更改自己的状态,如图3中的状态5和状
态6,由于B和C并发执行,所以这两个任务的完成时机不定。

当B和C都执行完毕时,此时D任务满足了加入执行队列的条件,其他的
任务都已经完成,所以只D任务会加入到任务队列,如图3中第7种状态。

当D任务执行完成时,更改自己的状态为完成状态,即图3中第8种状态,
至此任务队列在没有要继续执行的任务。任务队列执行完毕。

本发明技术方案带来的有益效果为:将任务间的依赖关系提前定义好,建
立依赖关系表,调度器根据赖关系表完成任务的驱动执行,提高效率,在有依
赖关系的请求队列执行时,获得了尽可能高的并发度,充分利用系统资源,高
效的完成了数据请求处理。任务调度形成专门的控制单元(即调度器),使后
期的扩展和更新维护变得简单。本发明使得数据请求和处理实现自适应,在有
依赖关系的请求队列执行时,获得了尽可能高的并发度,充分利用系统资源,
高效的完成了数据请求处理,并且在后期的维护更简单高效,降低数据请求和
处理在后期的维护成本。

例如,当任务依赖关系改变的情况出现时,我们只需要维护以下依赖关系
表:


上述依赖关系表比如变成如下依赖关系:


这样在开发时不需要更改别的代码,只需要将改变后的依赖关系表加入调
度器,依赖关系在加入之前定好即可,调度器就可以根据定义的依赖关系和调
度规则(任务处于非错误状态,非运行状态,非完成状态并且它所依赖的任务
全部处于完成状态时加入执行队列)完成调度。根据前述的例子可以看出在B
和C任务执行时,是可以做到并发的,比传统的处理逻辑顺序效率更高。

为了最大可能的提高任务的并发度,数据间的依赖关系必须提前明了,这
样才能制定出前期的依赖关系,使得调度器可以正确执行出结果。

本发明的关键技术点是将数据请求处理和调度器进行整合,用调度器调度
请求任务执行,把现有的在一个任务或多个任务里面驱动下一个任务的逻辑抽
离出来,形成依赖关系表,由专门调度器的根据依赖关系表统一来调度任务执
行,降低任务间的耦合度,获得尽可能高的并发度,可以实现较高的任务并发,
提高了执行效率并且具有较高的可维护性和可扩展性。

另一方面,参看图4,本发明实施例提供一种自适应数据请求处理装置3
0,包括依赖关系建立单元301和任务调度执行单元302。所述依赖关系
建立单元301,用于获取待执行的数据请求队列中的至少两个数据请求处理
任务之间的依赖关系并建立依赖关系表;所述任务调度执行单元302,用于
根据所述依赖关系表,统一自适应地调度所述数据请求队列中的所述至少两个
数据请求处理任务并驱动执行。

本发明通过将现有的基于一个或多个任务驱动下一个任务并顺序执行的
逻辑抽离出来,在具有依赖关系的任务队列执行时,获取待执行的数据请求队
列中的任务之间的依赖关系并建立依赖关系表,然后由专门的调度处理单元根
据所述依赖关系表,统一自适应地调度所述数据请求队列中的任务并执行,这
样可获得尽可能高的并发度,提高了任务执行效率,高效地完成了数据请求处
理,当任务之间的依赖关系改变时,只需修改所述依赖关系表就可以实现后续
的调度执行,利于后期维护和扩展。

在一个实施例中,参看图5,所述任务调度执行单元302包括第一调度
执行单元3021,用于根据预定的调度规则,将所述数据请求队列中满足所
述预定的调度规则的数据请求处理任务调度加入到执行队列以驱动执行;其
中,所述预定的调度规则为:数据请求处理任务处于非错误状态,非运行状态,
非执行完成状态并且它所依赖的其他数据请求处理任务全部处于执行完成状
态。

在一个实施例中,参看图6,所述依赖关系建立单元301包括调用接口
建立单元3011,用于在建立所述依赖关系表的同时或之后,所述建立所述
至少两个数据请求处理任务中每个数据请求处理任务的调用接口;其中所有数
据请求处理任务的调用接口相同;所述任务调度执行单元302还包括:第二
调度执行单元3022,用于根据所述依赖关系表和每个数据请求处理任务的
所述调用接口,将所述数据请求队列中满足所述预定的调度规则的数据请求处
理任务调度加入到执行队列以驱动执行。

可选的,在一个实施例中,该装置还包括任务队列结束单元,用于当检测
到所述数据请求队列执行到出口任务时,结束所述数据请求队列的执行;其中,
所述出口任务为所述数据请求队列中最后一个处于执行完成状态的数据请求
处理任务。

可选的,在一个实施例中,该装置还包括错误处理单元,用于当检测到所
述数据请求队列执行过程中出现预定错误时,停止所述数据请求队列的执行,
并将所述预定错误返回给调用者。需要说明的是,该装置实施例各单元与上述
方法实施例各步骤一一对应,其技术功能、效果等说明具体参看前述方法实施
例中的对应描述,此处不再详述。

再一方面,参看图7,本发明实施例提供一种任务调度器40,包括上述
任一实施例中的自适应数据请求处理装置30,该自适应数据请求处理装置3
0的具体内容参见前述实施例部分的描述描述,此处不再详述。

又一方面,参看图8,本发明实施例提供一种自适应数据请求处理系统5
0,包括上述实施例中的任务调度器40,该任务调度器40具体内容参见前
述实施例部分的描述描述,此处不再详述。

本发明实施例提供的技术方案,通过获取待执行的数据请求队列中的至少
两个数据请求处理任务之间的依赖关系并建立依赖关系表,再根据所述依赖关
系表,统一自适应地调度所述数据请求队列中的所述至少两个数据请求处理任
务并驱动执行。本发明通过将现有的基于一个或多个任务驱动下一个任务并顺
序执行的逻辑抽离出来,在具有依赖关系的任务队列执行时,获取待执行的数
据请求队列中的任务之间的依赖关系并建立依赖关系表,然后可由专门的调度
处理单元根据所述依赖关系表,统一自适应地调度所述数据请求队列中的任务
并执行,这样可获得尽可能高的并发度,提高了任务执行效率,高效地完成了
数据请求处理,当任务之间的依赖关系改变时,只需修改所述依赖关系表就可
以实现后续的调度执行,利于后期维护和扩展。

上面结合附图对本发明的具体实施方式进行了详细说明,但本发明并不限
制于上述实施方式,在不脱离本申请的权利要求的精神和范围情况下,本领域
的技术人员可以作出各种修改或改型。

自适应数据请求处理方法、装置、任务调度器及系统.pdf_第1页
第1页 / 共16页
自适应数据请求处理方法、装置、任务调度器及系统.pdf_第2页
第2页 / 共16页
自适应数据请求处理方法、装置、任务调度器及系统.pdf_第3页
第3页 / 共16页
点击查看更多>>
资源描述

《自适应数据请求处理方法、装置、任务调度器及系统.pdf》由会员分享,可在线阅读,更多相关《自适应数据请求处理方法、装置、任务调度器及系统.pdf(16页珍藏版)》请在专利查询网上搜索。

本发明公开了一种自适应数据请求处理方法,包括:获取待执行的数据请求队列中的至少两个数据请求处理任务之间的依赖关系并建立依赖关系表;以及根据所述依赖关系表,统一自适应地调度所述数据请求队列中的所述至少两个数据请求处理任务并驱动执行。本发明同时公开了执行该方法的自适应数据请求处理装置、任务调度器及系统。本发明使得在具有依赖关系的任务队列执行时,获得了尽可能高的并发度,提高了任务执行效率,高效地完成数据。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1