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

文档序号:9631437阅读:342来源:国知局
自适应数据请求处理方法、装置、任务调度器及系统的制作方法
【技术领域】
[0001] 本发明涉及数据处理领域,特别涉及一种自适应数据请求处理方法、装置、任务调 度器及系统。
【背景技术】
[0002] -个涉及数据处理的系统或软件(如应用程序)通常包涵很多的数据请求和/或 数据处理任务,数据请求和处理的合理和高效是十分重要的,可以能使得整个系统的体验 提升到最佳,使用户得到更好的体验。
[0003] 现有的数据请求处理任务(下称请求或任务)处理过程一般是将下一个请求的 启动放到了所依赖的上一个请求的执行结果中,当下一个请求获得上一个请求的执行结果 时,将数据传递到再下一个的请求当中,当前置依赖的上一个请求执行完成时,启动再下一 个数据请求任务。
[0004] 比如,在视频播放任务处理中,有如下数据请求处理任务队列,任务A:获取其他 任务的入口地址;任务B:根据A任务返回的地址请求同步服务器时间;任务C:根据A任务 返回的地址请求自动登录;任务D:根据任务C自动登录的用户信息和任务B同步的服务器 时间,使用任务A返回的地址请求一个时移的播放串。
[0005] 上述任务队列包含A、B、C、D四个任务,启动B需要A的结果,启动C需要A的结 果,启动D则需要A的地址、B的服务器时间、C的用户信息,所以他们之间的依赖关系就是 A没有依赖,B依赖于A,C依赖于A,D依赖于ABC。
[0006] 较为传统的请求处理方式为:首先是A任务启动,执行完毕时再启动B,B执行完 毕时请求C,C执行完毕最后请求D,D执行完毕则整个任务队列执行完毕。另外也可以调 整B和C的执行顺序,可以看出整个任务队列的执行过程是顺序的。这样的方式在具有依 赖关系的任务队列执行时,其处理的逻辑关系是由一个或多个任务驱动下一个任务并顺序 执行,任务间的耦合度较高,不能做到较高的任务并发执行,导致处理效率较低。
[0007] 另外,当任务之间的依赖关系改变时,任务间的依赖关系难以明确,调整任务间的 依赖关系的灵活度较低,进一步导致处理效率较低且不方便系统后期维护和扩展。以上述 举例为例说明,如果在上述任务中间增加一个步骤是去获取播放列表的话,那么涉及到的 几个任务之间的依赖关系改变较多,要做修改的话,易出错,任务间的依赖关系难以明确, 通过实际的实现代码没有办法明显的看出他们之间的依赖关系,进而难以灵活地调整驱动 任务执行。

【发明内容】

[0008] 本发明的目的在于克服现有技术中所存在的上述不足,提供一种自适应数据请求 处理方法、装置、任务调度器及系统,旨在具有依赖关系的任务队列执行时,获得尽可能高 的并发度,提高任务执行效率,高效地完成数据请求处理,同时利于数据处理系统的后期维 护和扩展。
[0009] 为了实现上述发明目的,本发明采用的技术方案是:
[0010] -方面,本发明实施例提供一种自适应数据请求处理方法,包括以下步骤:
[0011] 获取待执行的数据请求队列中的至少两个数据请求处理任务之间的依赖关系并 建立依赖关系表;以及
[0012] 根据所述依赖关系表,统一自适应地调度所述数据请求队列中的所述至少两个数 据请求处理任务并驱动执行。
[0013] 在一个实施例中,所述根据所述依赖关系表,统一调度所述数据请求队列中的所 述至少两个数据请求处理任务并驱动执行的步骤,具体包括:
[0014] 根据预定的调度规则,将所述数据请求队列中满足所述预定的调度规则的数据请 求处理任务调度加入到执行队列以驱动执行;
[0015] 其中,所述预定的调度规则为:数据请求处理任务处于非错误状态,非运行状态, 非执行完成状态并且它所依赖的其他数据请求处理任务全部处于执行完成状态。
[0016] 在一个实施例中,所述获取待执行的数据请求队列中的至少两个数据请求处理任 务之间的依赖关系并建立依赖关系表的步骤,具体还包括以下子步骤:
[0017] 建立所述依赖关系表的同时或之后,建立所述至少两个数据请求处理任务中每个 数据请求处理任务的调用接口;其中所有数据请求处理任务的调用接口相同;
[0018] 相应的,所述根据所述依赖关系表,统一自适应地调度所述数据请求队列中的所 述至少两个数据请求处理任务并驱动执行的步骤,具体包括如下子步骤:
[0019] 根据所述依赖关系表和每个数据请求处理任务的所述调用接口,将所述数据请求 队列中满足所述预定的调度规则的数据请求处理任务调度加入到执行队列以驱动执行。
[0020] 在一个实施例中,该方法还包括:当检测到所述数据请求队列执行到出口任务时, 结束所述数据请求队列的执行;其中,所述出口任务为所述数据请求队列中最后一个处于 执行完成状态的数据请求处理任务。
[0021] 进一步的,该方法还包括:当检测到所述数据请求队列执行过程中出现预定错误 时,停止所述数据请求队列的执行,并将所述预定错误返回给调用者。
[0022] 另一方面,本发明实施例提供一种自适应数据请求处理装置,包括:
[0023] 依赖关系建立单元,用于获取待执行的数据请求队列中的至少两个数据请求处理 任务之间的依赖关系并建立依赖关系表;
[0024] 任务调度执行单元,用于根据所述依赖关系表,统一自适应地调度所述数据请求 队列中的所述至少两个数据请求处理任务并驱动执行。
[0025] 在一个实施例中,所述任务调度执行单元包括:
[0026] 第一调度执行单元,用于根据预定的调度规则,将所述数据请求队列中满足所述 预定的调度规则的数据请求处理任务调度加入到执行队列以驱动执行;
[0027] 其中,所述预定的调度规则为:数据请求处理任务处于非错误状态,非运行状态, 非执行完成状态并且它所依赖的其他数据请求处理任务全部处于执行完成状态。
[0028] 在一个实施例中,所述依赖关系建立单元包括:
[0029] 调用接口建立单元,用于在建立所述依赖关系表的同时或之后,建立所述至少两 个数据请求处理任务中每个数据请求处理任务的调用接口;其中所有数据请求处理任务的 调用接口相同;
[0030] 所述任务调度执行单元还包括:
[0031] 第二调度执行单元,用于根据所述依赖关系表和每个数据请求处理任务的所述调 用接口,将所述数据请求队列中满足所述预定的调度规则的数据请求处理任务调度加入到 执行队列以驱动执行。
[0032] 在一个实施例中,该装置还包括:任务队列结束单元,用于当检测到所述数据请求 队列执行到出口任务时,结束所述数据请求队列的执行;其中,所述出口任务为所述数据请 求队列中最后一个处于执行完成状态的数据请求处理任务。
[0033] 在一个实施例中,该装置还包括:错误处理单元,用于当检测到所述数据请求队列 执行过程中出现预定错误时,停止所述数据请求队列的执行,并将所述预定错误返回给调 用者。
[0034] 再一方面,本发明实施例提供一种任务调度器,包括上述任一实施例中的自适应 数据请求处理装置。
[0035] 又一方面,本发明实施例提供一种自适应数据请求处理系统,包括上述实施例中 的任务调度器。
[0036] 与现有技术相比,本发明的有益效果:
[0037] 本发明实施例提供的技术方案,通过获取待执行的数据请求队列中的至少两个数 据请求处理任务之间的依赖关系并建立依赖关系表,再根据所述依赖关系表,统一自适应 地调度所述数据请求队列中的所述至少两个数据请求处理任务并驱动执行。本发明通过将 现有
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1