一种业务请求处理方法及装置的制造方法

文档序号:9826148阅读:356来源:国知局
一种业务请求处理方法及装置的制造方法
【技术领域】
[0001]本申请涉及计算机技术领域,尤其涉及一种业务请求处理方法及装置。
【背景技术】
[0002]随着网络技术的发展,用户通过网络获取各种业务请求的需求越来越多。同一业务请求通常包括多个业务环节,各个业务环节之间有的相互之间具有依赖关系,有的则不具有依赖关系。
[0003]目前,针对需要执行多个业务环节的业务请求,为了保证各业务环节执行逻辑上的顺序关系,一般都采用单线程处理方式,也即采用单线程依次执行各个业务环节。比如,针对某个业务请求,共需要执行4个业务环节,其中,业务环节4需要依赖于业务环节I?3的执行结果,业务环节2和3需要依赖于业务环节I的执行结果,业务环节2和3之间不具有依赖关系,在单线程处理方式下,需要顺次执行业务环节1、2、3和4,或者顺次执行业务环节1、3、2和4。
[0004]在上述单线程处理方式下,得到业务请求的最终的执行结果的处理时长是执行上述各种业务环节的处理时长的总和。显然,在这种处理方式下,执行业务请求的处理时长较长,中央处理器(Central Processing Unit, CPU)利用率较低。

【发明内容】

[0005]本申请实施例提供一种业务请求处理方法,用以解决现有技术中执行业务请求的处理时长较长,CPU利用率较低的问题。
[0006]本申请实施例提供的一种业务请求处理方法,包括:
[0007]根据业务请求的拓扑结构信息,以及当前对所述业务请求的处理进度,确定当前能够并行执行的业务环节集合;其中,所述拓扑结构信息包括执行所述业务请求时需要执行的各个业务环节之间的依赖关系信息;所述业务环节集合包含一个业务环节或包含多个相互之间不具有依赖关系的业务环节;
[0008]并行执行确定的所述业务环节集合中的各业务环节。
[0009]可选地,并行执行确定的所述业务环节集合中的各业务环节,包括:
[0010]针对所述业务环节集合中的每一个业务环节,从存储的业务环节队列中,提取出该业务环节的执行逻辑;
[0011]为所述业务环节集合中的每一个业务环节分别分配一个空闲状态下的工作线程,并控制各工作线程分别基于各自负责的业务环节的执行逻辑,并行执行各自负责的业务环
-K-
T O
[0012]可选地,控制各工作线程分别基于各自负责的业务环节的执行逻辑,并行执行各自负责的业务环节,包括:
[0013]针对每一个工作线程,控制该工作线程执行:
[0014]若执行该业务环节时需要依赖于之前执行其它业务环节后输出的业务消息,则从消息邮局中获取执行该业务环节所需的业务消息;所述消息邮局用于存储执行完各业务环节后输出的业务消息;
[0015]基于获取的业务消息,和该工作线程负责的业务环节的执行逻辑,执行该业务环
-K-
T O
[0016]可选地,并行执行确定的所述业务环节集合中的各业务环节之后,还包括:
[0017]若根据所述业务请求的拓扑结构信息,确定需要在执行完所述业务环节集合之后,执行与所述业务环节集合具有依赖关系的所述业务请求的下一个业务环节,则
[0018]针对所述业务环节集合中的任一业务环节,在控制为该业务环节分配的工作线程执行完该业务环节后,判断该业务环节是否为所述业务环节集合中最后一个被执行完的业务环节;
[0019]若是,则控制为所述任一业务环节分配的工作线程执行所述下一个业务环节。
[0020]可选地,判断所述任一业务环节是否为所述业务环节集合中最后一个被执行完的业务环节之后,还包括:
[0021]若确定该业务环节不是所述业务环节集合中最后一个被执行完的业务环节,则针对所述业务请求,判断当前是否存在与所述业务环节集合不具有依赖关系的其它待执行的业务环节;
[0022]若存在,则控制为所述任一业务环节分配的工作线程执行所述其它待执行的业务环节;否则,判断当前是否存在其它业务请求待执行的的业务环节;
[0023]若存在,则控制为所述任一业务环节分配的工作线程执行所述其它业务请求待执行的业务环节,否则,释放所述工作线程。
[0024]本申请实施例提供的一种业务请求处理装置,包括:
[0025]确定模块,用于根据业务请求的拓扑结构信息,以及当前对所述业务请求的处理进度,确定当前能够并行执行的所述业务请求的业务环节集合;其中,所述拓扑结构信息包括执行所述业务请求时需要执行的各个业务环节之间的依赖关系信息;所述业务环节集合包含一个业务环节或包含多个相互之间不具有依赖关系的业务环节;
[0026]执行模块,用于并行执行确定的所述业务环节集合中的各业务环节。
[0027]本申请实施例可以根据各业务请求的拓扑结构所指示的各业务环节之间的依赖关系,将能够并行执行的业务环节并行执行,从而可以减少执行业务请求的处理时长,提高业务执行效率及CPU利用率。
【附图说明】
[0028]图1为本申请实施例一提供的业务请求处理方法流程图;
[0029]图2为“产品推荐”业务请求的拓扑结构示意图;
[0030]图3为本申请实施例二提供的业务请求处理方法流程图;
[0031]图4为本申请实施例提供的进行业务请求处理的系统结构示意图;
[0032]图5为本申请实施例三提供的业务请求处理方法流程图;
[0033]图6(a)为各工作线程执行业务环节的示意图之一;
[0034]图6(b)为各工作线程执行业务环节的示意图之二 ;
[0035]图7为本申请实施例提供的业务请求处理装置结构示意图。
【具体实施方式】
[0036]本申请实施例的基本思想是:在接收到业务请求后,根据该业务请求的拓扑结构信息,确定执行该业务请求时需要执行的各个业务环节之间的依赖关系,在执行该业务请求的过程中,基于这种依赖关系以及当前对该业务请求的处理进度,确定当前能够并行执行的业务环节集合,该业务环节集合可以包括多个相互之间不具有依赖关系的业务环节,并行执行这些相互之间不具有依赖关系的业务环节,串行执行相互之间具有依赖关系的业务环节。可见,本申请实施例可以根据各业务请求的拓扑结构所指示的各业务环节之间的依赖关系,将能够并行执行的业务环节并行执行,从而可以减少执行业务请求的处理时长,提高业务执行效率及CPU利用率。
[0037]下面结合说明书附图对本申请实施例作进一步详细描述。
[0038]如图1所示,为本申请实施例一提供的业务请求处理方法流程图,包括以下步骤:
[0039]SlOl:根据业务请求的拓扑结构信息,以及当前对所述业务请求的处理进度,确定当前能够并行执行的业务环节集合;其中,所述拓扑结构信息包括执行所述业务请求时需要执行的各个业务环节之间的依赖关系信息;所述业务环节集合包含一个业务环节或包含多个相互之间不具有依赖关系的业务环节。
[0040]在具体实施过程中,可以预先根据不同的业务请求的处理流程,存储该业务请求的拓扑结构信息,该拓扑结构信息可以是基于有向无环图的模式存储的执行该业务请求时需要执行的各个业务环节之间的依赖关系信息。这里,两个业务环节之间具有依赖关系是指一个业务环节的执行需要依赖于另一个业务环节的执行结果。如图2所示,为“产品推荐”这个业务请求的拓扑结构示意图。从该业务请求的拓扑结构中可以看出,对各个业务环节的执行顺序是:首先执
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1