发明内容
为克服相关技术中存在的问题,本说明书提供了处理请求的分配方法、装置及设备。
根据本说明书实施例的第一方面,提供一种处理请求的分配方法,用于将所述处理请求分配给至少两个处理模块中的其中一个,至少有一个所述处理模块对应一种或多种触发条件,所述触发条件包括:一个或多个目标参数、以及匹配所述目标参数的匹配关系,所述匹配关系预先配置有对应的运算模板程序;所述方法包括:
获取处理请求,确定所述处理请求包含的待匹配参数;
通过如下方式判断所述处理请求是否满足所述触发条件:调用所述触发条件中匹配关系对应的运算模板程序,所述运算模板程序用于:以所述待匹配参数和所述目标参数作为输入,确定待匹配参数与所述目标参数是否满足所述匹配关系;
根据判断结果确定所述处理请求所分配的处理模块。
可选的,所述触发条件存储于数据表中,并通过所述数据表进行更新。
可选的,若所述处理请求的待匹配参数与所述触发条件的所有目标参数满足所述匹配关系,确定所述处理请求满足所述触发条件。
可选的,若所述处理请求满足所述触发条件,将所述处理请求分配给该处理请求所满足的触发条件对应的处理模块。
可选的,所述至少两个处理模块中有一个处理模块未对应有触发条件,则未满足所有触发条件的处理请求分配给该未对应有触发条件的处理模块。
可选的,所述触发条件通过业务类别区分;
所述判断所述处理请求是否满足所述触发条件,包括:
查找与所述处理请求的业务类别对应的触发条件,判断所述处理请求是否满足查找到的触发条件。
可选的,所述待匹配参数或所述目标参数至少包含:数据标识和数据值;
所述运算模板程序具体用于:以具有相同数据标识的待匹配参数与目标参数作为输入,确定待匹配参数中的数据值与所述目标参数中的数据值是否满足所述匹配关系。
可选的,所述待匹配参数或所述目标参数还包含数据类型,若所述匹配关系对应有至少两个所述运算模板程序,所述被调用的运算模板程序与所述待匹配参数或所述目标参数包含的数据类型对应。
可选的,若所述处理请求基于Java语言编写,则所述待匹配参数的数据类型通过Java反射获得。
根据本说明书实施例的第二方面,提供一种处理请求的分配装置,用于将所述处理请求分配给至少两个处理模块中的其中一个,至少有一个所述处理模块对应一种或多种触发条件,所述触发条件包括:一个或多个目标参数、以及匹配所述目标参数的匹配关系,所述匹配关系预先配置有对应的运算模板程序;所述装置包括:
获取模块,用于:获取处理请求,确定所述处理请求包含的待匹配参数;
判断模块,用于:通过如下方式判断所述处理请求是否满足所述触发条件:调用所述触发条件中匹配关系对应的运算模板程序,所述运算模板程序用于:以所述待匹配参数和所述目标参数作为输入,确定待匹配参数与所述目标参数是否满足所述匹配关系;
确定模块,用于:根据判断结果确定所述处理请求所分配的处理模块。
可选的,所述触发条件存储于数据表中,并通过所述数据表进行更新。
可选的,若所述处理请求的待匹配参数与所述触发条件的所有目标参数满足所述匹配关系,确定所述处理请求满足所述触发条件。
可选的,若所述处理请求满足所述触发条件,将所述处理请求分配给该处理请求所满足的触发条件对应的处理模块。
可选的,所述至少两个处理模块中有一个处理模块未对应有触发条件,则未满足所有触发条件的处理请求分配给该未对应有触发条件的处理模块。
可选的,所述触发条件通过业务类别区分;
所述判断模块,具体用于:
查找与所述处理请求的业务类别对应的触发条件,判断所述处理请求是否满足查找到的触发条件。
可选的,所述待匹配参数或所述目标参数至少包含:数据标识和数据值;
所述运算模板程序具体用于:以具有相同数据标识的待匹配参数与目标参数作为输入,确定待匹配参数中的数据值与所述目标参数中的数据值是否满足所述匹配关系。
可选的,所述待匹配参数或所述目标参数还包含数据类型,若所述匹配关系对应有至少两个所述运算模板程序,所述被调用的运算模板程序与所述待匹配参数或所述目标参数包含的数据类型对应。
可选的,若所述处理请求基于Java语言编写,则所述待匹配参数的数据类型通过Java反射获得。
根据本说明书实施例的第三方面,提供一种处理请求的分配设备,用于将所述处理请求分配给至少两个处理模块中的其中一个,至少有一个所述处理模块对应一种或多种触发条件,所述触发条件包括:一个或多个目标参数、以及匹配所述目标参数的匹配关系,所述匹配关系预先配置有对应的运算模板程序;所述设备包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
获取处理请求,确定所述处理请求包含的待匹配参数;
通过如下方式判断所述处理请求是否满足所述触发条件:调用所述触发条件中匹配关系对应的运算模板程序,所述运算模板程序用于:以所述待匹配参数和所述目标参数作为输入,确定待匹配参数与所述目标参数是否满足所述匹配关系;
根据判断结果确定所述处理请求所分配的处理模块。
本说明书的实施例提供的技术方案可以包括以下有益效果:
本说明书实施例在处理请求分配过程中,需要判断处理请求是否满足流量出口所需要的触发条件,而本实施例将触发条件设定为目标参数与匹配关系,并对匹配关系预先配置运算模板程序;
一方面,随着业务发展,在处理模块出现变动或处理请求中包含参数出现变动的情况下,触发条件需要面临更新;由于本实施例将触发条件设定为目标参数与匹配关系,因此无需对已有系统代码进行较大改动,通过重新配置触发条件中的目标参数和匹配关系即可满足更新要求。
另一方面,由于运算模板程序具有可复用优点,若有不同触发条件包含相同的匹配关系,该运算模板程序可以被多次调用,从而可减少代码冗余,有利于系统稳健发展。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
在互联网或计算机应用等技术领域中,处理请求的接收方常常会接收到大量的处理请求,而接收方基于业务需要可能会配置至少两个处理模块,处理模块用于承接处理请求并完成后续的处理流程,因此接收方会面临对这些处理请求进行分配的需求。其中,该至少两个处理模块可以是集成于同一业务系统中的子模块,也可以是各自独立的业务系统。例如,在一些业务场景中,一些旧业务处理系统面临升级改造,改造后的新业务处理系统可以承接部分处理请求(例如承接内部用户、部分等级较高用户等发起的处理请求、或者承接某类业务维度的处理请求等等)。在另一些业务场景中,也可以是各个处理模块对应不同的业务功能,对某一类业务功能具有需求的处理请求分配至对应的处理模块。
基于此,如图1所示,是本说明书根据一示例性实施例出的一种分配处理请求的场景图,图1中包括若干个发起处理请求的发起方,以及接收处理请求的接收方业务系统。其中,业务系统中包括至少两个处理模块,处理请求从业务系统的流量入口进入,需要为处理请求分配合适的处理模块。可选的,该分配过程可以由图1中的处理请求的分配装置执行。
如图2A所示,是本说明书根据一示例性实施例示出的一种处理请求的分配方法的流程图,该方法可应用于图2A所示的接收方业务系统中,用于将所述处理请求分配给至少两个处理模块中的其中一个。
其中,基于业务需要,本实施例预先配置有至少两个所述处理模块,出于测试需要、灰度切流或业务功能不同等多种原因,处理请求对所承接的处理请求具有要求,也就是说,满足处理模块的要求的处理请求,该处理请求就会被分配给该处理模块。而在对处理请求判断是否满足要求的过程中,是通过处理请求中所包含的参数与处理模块的要求进行匹配。作为例子,某个处理模块对处理请求的要求可以是:等级大于5的用户发起的处理请求、用户名为ccd发起的处理请求、业务类型为check且交易代码包含关键字符串yui等等。相对应的,是从处理请求中所包含的参数,查看处理请求是否包含有用户名ccd、业务类型check、交易代码包含关键字符串yui等。本实施例中,处理请求包含有一种或多种与业务有关的参数,本实施例称为待匹配参数。
而处理模块的要求也可以转换为一些参数以及匹配该参数的匹配关系,例如,在匹配过程中,可以是将处理请求中所包含的参数与处理模块中所要求的某一些参数进行匹配运算。这些匹配运算可以是等于、包含、大于、小于或不包含等等。基于此,本实施例的处理模块中可以包括有一种或多种触发条件,每一种触发条件可以包括有一个或多个目标参数、以及匹配目标参数的匹配关系,而上述匹配关系可能需要反复利用。为了区分,本实施例将触发条件中包含的参数称为目标参数。
本实施例中,同一种匹配关系可能会被用于匹配多个目标参数,匹配关系的运算逻辑可以被复用,基于此,本实施例中,针对每种匹配关系预先配置有运算模板程序,运算模板程序被调用后,该运算模板程序以处理请求的待匹配参数和触发条件的目标参数为输入,运算模板程序可以根据所输入的待匹配参数和目标参数,确定待匹配参数与目标参数是否满足所述匹配关系。
基于上述说明,如图2A所示,是本说明书根据一示例性实施例示出的一种处理请求的分配方法的流程图,所述方法包括如下步骤:
在步骤202中,获取处理请求,确定所述处理请求包含的待匹配参数。
在步骤204中,判断所述处理请求是否满足所述触发条件。其中,判断方式包括:调用所述触发条件中匹配关系对应的运算模板程序,所述运算模板程序用于:以所述待匹配参数和所述目标参数作为输入,确定待匹配参数与所述目标参数是否满足所述匹配关系。
在步骤206中,根据判断结果确定所述处理请求所分配的处理模块。
结合图2B所示的处理请求分配的另一场景示意图为例进行说明,图2B以两种匹配关系为例进行说明,分别是:
equals,表示等同的匹配关系,对应的运算模板程序用于判断两个输入参数是否相同;
contains,表示包含的匹配关系,对应的运算模板程序用于判断其中一个输入参数是否包含于另一输入参数中。
图2B中还包括3个处理模块,本实施例针对其中两个处理模块进行说明:
处理模块1对应一种触发条件11,该触发条件包括两个目标参数,以及匹配目标参数的匹配关系:
目标参数111(operate:zhuzhen),匹配关系是equals;
目标参数112(instChannelApis:psbc901),匹配关系是contains。
处理模块2对应包括两个触发条件:
触发条件21:目标参数211(operate:beiyu),匹配关系是equals。
触发条件22:目标参数222(instChannelApis:psbc901),匹配关系是contains。
假设有如下一条处理请求,该处理请求包含的待匹配参数包括如下4个:
operate=beiyu;
instDate=20170908;
instChannelApis=psbc902,ccb201
operatorAndOperateDate=zhuzhen:2017089
处理请求的分配过程包括:
根据处理模块1的触发条件,针对目标参数111,调用equals对应的运算模板程序,将目标参数111和处理请求中的待匹配参数(operate=beiyu)作为运算模板程序的输入,通过运算模板程序确定两者是否等同。
进一步的,将处理请求中的待匹配参数与上述每种触发条件中的每个目标参数进行匹配。可以理解,上述例子中,处理请求中的待匹配参数(operate=beiyu)与目标参数211匹配,因此处理请求满足触发条件21。由于触发条件21对应处理模块2,可以将处理请求分配给处理模块2。
其中,每一种触发条件中的目标参数可能有一个,也可能有多个;实际应用中,触发条件可以有多种配置方式:
作为一个例子,假设触发条件包括一个目标参数及对应的匹配关系,则该触发条件表示:只要处理请求中有一个待匹配参数与该目标参数满足该匹配关系,则表示处理请求满足该触发条件。
在其他例子中,触发条件中可以包括至少两个目标参数,该触发条件可以有以下含义:
第一种、要求处理请求中的待匹配参数需要与所有目标参数都匹配,该处理请求才满足触发条件。
第二种、处理请求中的待匹配参数与至少两个目标参数中的一个或多个匹配,该处理请求则满足触发条件。
作为例子,假设有两个目标参数,实际应用中可以根据需要灵活配置满足触发条件的规则,例如处理请求中的待匹配参数中只要与其中一个目标参数匹配,即可确定满足触发条件,也就是说,各个目标参数之间可以是或的关系。判断是否满足触发条件的规则,实际应用中可灵活配置,本实施例对此不作限定。
当然,对于两个以上具有或的关系的目标参数,也可以转换为多种触发条件的配置方式,例如,以下表格1和表格2示出的触发条件可以表示同一种含义:
表1
触发条件A表示:处理请求中的待匹配参数中只要与其中一个目标参数匹配,即可确定满足触发条件。
实际应用中,触发条件A还可以转换为如下配置方式:
触发条件A1 |
目标参数a1(匹配关系Q) |
触发条件A2 |
目标参数a2(匹配关系P) |
表2
表2中示出了两种触发条件,触发条件A1表示处理请求中的待匹配参数需与目标参数a1满足匹配关系Q,才可确定处理请求满足触发条件A1;触发条件A2表示处理请求中的待匹配参数需与目标参数a2满足匹配关系P,才可确定处理请求满足触发条件A2。
通过上述方式,可以判断处理请求是否满足触发条件,接着可以根据判断结果确定处理请求所分配的处理模块,其中,处理模块对应一种或多种触发条件,因此,具体的确定方式可以灵活配置。
作为例子,假设处理模块对应一种触发条件,处理请求可能满足该处理模块中的一种触发条件,可以将处理请求分配给该处理模块。在另一些例子中,假设处理模块对应多种触发条件,可以是:处理请求满足其中一种触发条件,即可将处理请求分配给该处理模块。
在另一些例子中,有可能出现处理请求既满足某一处理模块的触发条件,也满足另一处理模块的触发条件的情况,在这种情况下,也可以灵活配置处理请求所分配的处理模块,例如按照处理模块的优先级进行分配、或者随机分配等等。当然,也可以通过对触发条件的配置,使处理请求只能满足其中一个处理模块的触发条件,实际应用中可以根据需要灵活配置多种实现方式,本实施例对此不作限定。
实际应用中,对于至少两个处理模块,可以是所有处理模块都对应有触发条件;也可以是:其中一个处理模块未对应有触发条件,其他处理模块对应有触发条件。作为例子,实际应用中有此类应用场景,需要将具有某一类特点的处理请求分配至处理模块1,而剩余的不具有此类特点的其他处理请求都分配至处理模块2。具体实现时,可以是根据该类特点配置处理模块1的触发条件,以该特点为“用户标识为zhuzhen发起的处理请求”为例:
处理模块1的触发条件是:operate:zhuzhen^equals;满足该触发条件,则处理请求分配至处理模块1;
而对于处理模块2,可以是:
第一种、配置触发条件:operate:zhuzhen^not equals,表示用户标识不等同与zhuzhen的处理请求,分配至处理模块2;该触发条件可以理解为处理模块1的触发条件的反面。
第二种、不需要为处理模块2配置触发条件,因为在判断是否满足处理模块1的触发条件的过程中,当得到不满足处理模块1的触发条件的结果,就可以知道处理请求满足了处理模块2的要求,从而可以做出将处理请求分配给处理模块2的决策。
基于此,本实施例中,也可以是至少两个处理模块中有一个处理模块未对应有触发条件,则未满足所有触发条件的处理请求分配给该未对应有触发条件的处理模块,从而可以减少触发条件的配置,提高处理效率。
由前述描述可知,处理请求包含有一种或多种待匹配参数,触发条件中包括一种目标参数,不同参数指代不同类业务含义,可以理解,判断待匹配参数是否满足目标参数的匹配关系,是将具有相同业务类含义的待匹配参数与目标参数进行判断。为了更快完成判断,可选的,所述待匹配参数或所述目标参数可以采用相同的描述形式,例如,都可以至少包含:数据标识(key)和数据值(value)。作为例子,目标参数(用户标识为zhuzhen)可以配置为:
operate:zhuzhen,其中operate为数据标识,其代表用户标识的业务含义,zhuzhen是数据值。
基于此,所述运算模板程序具体用于:以具有相同数据标识的待匹配参数与目标参数作为输入,确定待匹配参数中的数据值与所述目标参数中的数据值是否满足所述匹配关系,在处理请求中包含有多个待匹配参数、或者触发条件中包含有个目标参数的情况下,通过上述方式可以快速地将相同业务含义的待匹配参数与目标参数进行判断。
实际应用中,对于同一种匹配关系,不同的数据类型可能具有不同的运算方式;以equals为例,equals表示等同的匹配关系,但属于字符串(string)类型的等同判断过程与列表(list)类型的等同判断过程不同,因此,同一种匹配关系还可以对应至少两个运算模板程序,运算模板程序还可以通过数据类型进行区分,使得运算模板程序能更为精细化地区分,从而能满足更多不同数据类型的参数匹配。因此,本实施例中,所述待匹配参数或所述目标参数还可包含数据类型,若所述匹配关系对应有至少两个所述运算模板程序,所述被调用的运算模板程序与所述待匹配参数或所述目标参数包含的数据类型对应。基于此,判断过程可以是:对于待匹配参数和目标参数,查找到与匹配关系和数据类型对应的运算模板程序,调用该运算模板程序判断两者的数据值是否满足匹配关系。
以前述处理请求为例:
operate=beiyu;
instDate=20170908;
instChannelApis=psbc902,ccb201
operatorAndOperateDate=zhuzhen:2017089
该处理请求中,待匹配参数包含了数据标识和数据值,但数据类型并未包含,可选的,在一些例子中,可以通过查找系统设计文档等方式确定各个参数的数据类型;在其他例子中,若所述处理请求基于Java语言编写,所述待匹配参数的数据类型也可以通过Java反射快速获得。
实际应用中,在判断所述处理请求是否满足所述触发条件的过程中,可以是将处理请求与每一种触发条件进行比对;然而,在一些例子中,有可能触发条件很多,例如,业务系统中可能有多项业务,不同项业务的功能具有一定差异,针对各项不同业务具有多个处理模块,每个处理模块多种触发条件,这些处理请求是请求方基于业务需求而发起的。
基于此,为了提高判断效率,可以将触发条件通过业务类别区分,例如,业务类别1对应某一些触发条件,业务类别2对应另一些触发条件等等;当要判断所述处理请求是否满足所述触发条件时,可以是查找与所述处理请求的业务类别对应的触发条件,判断所述处理请求是否满足查找到的触发条件。而区分处理请求的类别的实现方式可以有多种,作为例子,可以是基于处理请求本身所包含的参数分析得到,也可以是业务系统中配置了多种类别的流量入口,通过处理请求所进入的流量入口而确定等等。
由上述实施例可见,运算模板程序具有可复用优点,不同触发条件中可能包含相同的匹配关系,该运算模板程序可以被多次调用,从而可减少代码冗余,有利于系统稳健发展。
另一方面,随着业务发展,处理模块可能发生增删等变动,处理模块所对应的触发条件也可能发生变动,处理请求中所包含的待匹配参数也可以发生变动。由于本实施例将触发条件设定为目标参数与匹配关系,因此本实施例中只需要通过重新配置触发条件中的目标参数和匹配关系即可满足更新要求,无需对已有系统代码进行较大改动,改造的难度较低。
可选的,触发条件可以存储于数据表中,在执行对处理请求的分配时,可以加载数据表后读取其中的触发条件,触发条件无需写入至程序中;而且通过所述数据表可以对触发条件进行灵活更新,触发条件作为数据表中的数据,可以快速便捷地进行数据表中数据的增删改,并且每次更新对已有业务系统不会造成影响,有利于系统稳健发展。
接下来通过一实施例对本说明书的方案再次进行说明。本实施例涉及业务系统改造场景,随着业务的快速发展,旧有业务系统无法支持一些新增业务功能,在开发出新业务系统后,涉及到新业务系统的上线发布。为了保证业务功能的稳定,会涉及业务系统的灰度发布,灰度发布是指在新旧业务系统之间,能够平滑过渡的一种发布方式,让一部分流量继续用旧业务系统,一部分流量开始用新业务系统,如果新业务系统能够稳定处理,可以逐步扩大范围,把所有流量都迁移到新业务系统上。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。
在此过程中,需要实现多维度的多种匹配形式的灰度设计,从而保证系统改造多维度的灰度切流过程。例如A系统,新改造后,业务场景涉及以下维度:渠道、机构、金额、操作员、银行日期、清算日期、交易代码、子交易代码或业务来源等多种维度。其中各个维度分别代表了不同的业务属性,且有多个维度的特定组合代表一类业务维度。如渠道+机构代表指定的渠道相关的业务维度,操作员+子交易代码+交易代码代表了业务类别,操作员、机构、渠道也可以单独作为维度进行业务的灰度。同时机构以特定字符串开头,交易代码包含关键字符串(例如字符串:dlaghlg)时,又代表了其他的业务维度。
针对改造时涉及多个维度的组合,需要根据多个维度的不同组合,以及维度的特定匹配方式来进行业务灰度,也就是说,针对新业务场景,满足这些业务维度的处理请求需要分配至新业务系统。此种场景下,可以采用本说明书的处理请求的分配方案。
如图3所示,是本说明书根据一示例性实施例示出的处理请求的分配方法所包含组件的示意图,包括触发条件配置、处理请求的参数获取及运算模板程序:
触发条件配置:可以实现业务灰度维度和匹配关系的快速配置化,随着切流的逐步发展,业务灰度会持续变动,本实施例可以灵活地配置触发条件中的目标参数和匹配关系,可支持实时的灰度配置。
处理请求的参数获取:处理请求中包含有一种或多种待匹配参数,其中,参数至少包括数据标识及数据值,在一些例子中,处理请求中携带的参数可能没有指示具体的数据类型,而对于同一种匹配关系,不同的数据类型可能具有不同的运算方式,因此,本实施例还可以获取数据类型,其中,本实施例以Java编程语言为例,可以采用Java反射获取到目标参数所包含的数据类型。可选的,可以根据需要将处理请求的待匹配参数转换为统一格式,作为例子,格式可以是:数据标识、数据值(数据类型)。
运算模板程序:图3中以equals、contains、in和not in等多种匹配关系为例,每种匹配关系对应有运算模板程序。可选的,对于同一种匹配关系,不同的数据类型可能具有不同的运算方式;以equals为例,equals表示等同的匹配关系,但属于字符串(string)类型的等同判断过程与列表(list)类型的等同判断过程不同,因此,同一种匹配关系还可以对应多个运算模板程序,运算模板程序还可以通过数据类型进行区分。
当处理请求进入后,可选的,将处理请求中的各个待匹配参数按照已设定的统一格式进行转换,例如统一转换为<数据标识,数据值(数据类型)>的格式。可选的,触发条件基于业务类型区分,可以通过处理请求中用于指示业务类型的参数确定业务类型,之后查找与该业务类型所对应的所有触发条件;之后,将待匹配参数与各条触发条件匹配。可选的,针对一条触发条件,逐个读取目标参数及匹配关系,查找到与匹配关系和数据类型对应的运算模板程序,调用该运算模板程序判断待匹配参数与目标参数的数据值是否满足匹配关系,最终确定处理请求是否满足触发条件,在满足的情况下,将处理请求分配至该触发条件对应的新业务系统,若都不满足,则将处理请求分配至旧业务系统。
以下表格示出了将一条处理请求与3种触发条件的匹配过程:
由上述实施例可见,基于本实施例对触发条件的设计,本实施例可以支持多维度的的多种匹配形式灵活配置、从而支持业务灰度的切流,同时对于业务系统而言,实现一套上述方案后,其他新业务也仅通过对触发条件或运算模板程序配置化即可支持新的需求,本实施例在程序代码实现上更为统一,可以减少无效的业务代码,有利于系统的稳健发展。
与前述处理请求的分配方法的实施例相对应,本说明书还提供了处理请求的分配装置及其所应用的设备的实施例。
本说明书处理请求的分配装置的实施例可以应用在服务器等设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在处理请求的分配的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本说明书处理请求的分配装置所在设备的一种硬件结构图,除了图4所示的处理器410、内存430、网络接口420、以及非易失性存储器440之外,实施例中装置431所在的服务器,通常根据该计算机设备的实际功能,还可以包括其他硬件,对此不再赘述。
如图5所示,图5是本说明书根据一示例性实施例示出的一种处理请求的分配装置的框图,用于将所述处理请求分配给至少两个处理模块中的其中一个,至少有一个所述处理模块对应一种或多种触发条件,所述触发条件包括:一个或多个目标参数、以及匹配所述目标参数的匹配关系,所述匹配关系预先配置有对应的运算模板程序;所述装置包括:
获取模块51,用于:获取处理请求,确定所述处理请求包含的待匹配参数;
判断模块52,用于:通过如下方式判断所述处理请求是否满足所述触发条件:调用所述触发条件中匹配关系对应的运算模板程序,所述运算模板程序用于:以所述待匹配参数和所述目标参数作为输入,确定待匹配参数与所述目标参数是否满足所述匹配关系;
确定模块53,用于:根据判断结果确定所述处理请求所分配的处理模块。
可选的,所述触发条件存储于数据表中,并通过所述数据表进行更新。
可选的,若所述处理请求的待匹配参数与所述触发条件的所有目标参数满足所述匹配关系,确定所述处理请求满足所述触发条件。
可选的,若所述处理请求满足所述触发条件,将所述处理请求分配给该处理请求所满足的触发条件对应的处理模块。
可选的,所述至少两个处理模块中有一个处理模块未对应有触发条件,则未满足所有触发条件的处理请求分配给该未对应有触发条件的处理模块。
可选的,所述触发条件通过业务类别区分;
所述判断模块,具体用于:
查找与所述处理请求的业务类别对应的触发条件,判断所述处理请求是否满足查找到的触发条件。
可选的,所述待匹配参数或所述目标参数至少包含:数据标识和数据值;
所述运算模板程序具体用于:以具有相同数据标识的待匹配参数与目标参数作为输入,确定待匹配参数中的数据值与所述目标参数中的数据值是否满足所述匹配关系。
可选的,所述待匹配参数或所述目标参数还包含数据类型,若所述匹配关系对应有至少两个所述运算模板程序,所述被调用的运算模板程序还与所述待匹配参数或所述目标参数包含的数据类型对应。
可选的,若所述处理请求基于Java语言编写,则所述待匹配参数的数据类型通过Java反射获得。
相应的,本说明书实施例还提供一种处理请求的分配设备,用于将所述处理请求分配给至少两个处理模块中的其中一个,至少有一个所述处理模块对应一种或多种触发条件,所述触发条件包括:一个或多个目标参数、以及匹配所述目标参数的匹配关系,所述匹配关系预先配置有对应的运算模板程序;所述设备包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
获取处理请求,确定所述处理请求包含的待匹配参数;
通过如下方式判断所述处理请求是否满足所述触发条件:调用所述触发条件中匹配关系对应的运算模板程序,所述运算模板程序用于:以所述待匹配参数和所述目标参数作为输入,确定待匹配参数与所述目标参数是否满足所述匹配关系;
根据判断结果确定所述处理请求所分配的处理模块。
上述处理请求的分配装置中各个模块的功能和作用的实现过程具体详见上述处理请求的分配方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本领域技术人员在考虑说明书及实践这里申请的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。
应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。