规则的更新方法、终端、设备和计算机可读存储介质与流程

文档序号:23893776发布日期:2021-02-09 11:17阅读:68来源:国知局
规则的更新方法、终端、设备和计算机可读存储介质与流程

[0001]
本发明涉及金融科技(fintech)技术领域,尤其涉及规则的更新方法、终端、设备和计算机可读存储介质。


背景技术:

[0002]
随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(fintech)转变,但由于金融行业的安全性、实时性要求,也对技术提出了更高的要求。
[0003]
随着金融环境的剧烈变化以及人们悄然转变的消费习惯,金融行业的业务变化愈加频繁和剧烈。这种情况下会使得业务规则经常变动。业务规则的变动,则需要重新更新终端的规则,从而适应业务。
[0004]
但是新的规则的可能存在缺陷,导致终端执行新的规则时出错或者失败,从而导致相应业务规则的检查服务不可用,使得业务受到影响。


技术实现要素:

[0005]
本发明的主要目的在于提供一种规则的更新方法、终端、设备和计算机可读存储介质,旨在解决终端执行新的规则时出错或者失败使得业务受到影响的问题。
[0006]
为实现上述目的,本发明提供一种规则的更新方法,所述规则的更新方法包括:
[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]
对各个所述第三参数进行分类,以得到每一类第三参数的数量;
[0038]
在各个所述数量中确定最小数量,并根据所述最小数量与所述总次数的比值确定所述请求比例。
[0039]
在一实施例中,所述获取第二参数的步骤之后,还包括:
[0040]
确定所述第一参数与所述第二参数之间的差值;
[0041]
在所述差值小于预设差值时,执行所述确定所述的第二参数是否匹配所述第一参数的步骤。
[0042]
为实现上述目的,本发明还提供一种终端,所述终端包括:
[0043]
获取模块,用于获取第一参数,并获取第二参数,其中,所述第一参数为终端采用
主路规则执行请求后输出的参数,所述第二参数为所述终端采用旁路规则执行所述请求后输出的参数,所述旁路规则的版本高于所述主路规则的版本;
[0044]
确定模块,用于确定所述的第二参数是否匹配所述第一参数;
[0045]
更新模块,用于在所述第二参数匹配所述第一参数时,将所述主路规则替换为所述旁路规则,以对主路规则进行更新。
[0046]
为实现上述目的,本发明还提供一种设备,所述设备包括存储器、处理器以及存储在所述存储器并可在所述处理器上运行的更新程序,所述更新程序被所述处理器执行时实现如上所述的规则的更新方法。
[0047]
为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有更新程序,所述更新程序被处理器执行时实现如上所述的规则的更新方法。
[0048]
本发明提供一种规则的更新方法、终端、设备和可读存储介质,终端获取采用主路规则执行请求输出的第一参数以及采用旁路规则执行请求输出的第二参数,主路规则的版本低于旁路规则的版本,在当第一参数匹配第二参数时,则将终端的主路规则替换为旁路规则。本发明通过执行主路规则以及旁路规则分别得到参数,再根据参数验证旁路规则是否存在缺陷,而旁路规则的版本高于主路规则的版本,也即对旁路规则进行缺陷的验证即为对新的规则进行验证,并在验证成功后再进行规则的更新,避免终端执行新规则出错或者失败,进而避免业务受到影响。
附图说明
[0049]
图1为本发明实施例方案涉及的硬件运行环境的终端的硬件结构示意图;
[0050]
图2为本发明规则的更新方法第一实施例的流程示意图;
[0051]
图3为本发明规则的更新方法第二实施例的流程示意图;
[0052]
图4为本发明规则的更新方法第三实施例的流程示意图;
[0053]
图5为本发明规则的更新方法第四实施例的流程示意图;
[0054]
图6为本发明终端的功能模块示意图。
[0055]
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
[0056]
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0057]
参照图1,图1为本发明实施例方案涉及终端或设备的硬件运行环境的硬件结构示意图。
[0058]
如图1所示,终端可以包括:处理器1001,例如cpu,通信总线1002,用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
[0059]
本领域技术人员可以理解,图1中示出的结构并不构成对终端的限定,可以包括比
图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0060]
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及更新程序。
[0061]
在图1所示的终端中,网络接口1004主要用于连接后台终端,与后台终端进行数据通信;用户接口1003主要用于连接客户端,与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的更新程序,并执行以下操作:
[0062]
获取第一参数,并获取第二参数,其中,所述第一参数为终端采用主路规则执行请求后输出的参数,所述第二参数为所述终端采用旁路规则执行所述请求后输出的参数,所述旁路规则的版本高于所述主路规则的版本;
[0063]
确定所述的第二参数是否匹配所述第一参数;
[0064]
在所述第二参数匹配所述第一参数时,将所述主路规则替换为所述旁路规则,以对主路规则进行更新。
[0065]
在一实施例中,处理器1001可以调用存储器1005中存储的更新程序,还执行以下操作:
[0066]
确定所述第二参数是否满足预设条件;
[0067]
在所述第二参数满足所述预设条件时,执行所述确定所述的第二参数是否匹配所述第一参数的步骤;
[0068]
在所述第二参数不匹配所述预设阈值时,根据所述第二参数修改所述旁路规则的规则文件以更新旁路规则,并采用更新的旁路规则执行所述请求,以返回执行所述获取第二参数的步骤。
[0069]
在一实施例中,处理器1001可以调用存储器1005中存储的更新程序,还执行以下操作:
[0070]
在所述第二参数不匹配所述第一参数时,根据所述第二参数修改所述旁路规则的规则文件以更新旁路规则,并采用更新的旁路规则执行所述请求,以返回执行所述获取第二参数的步骤。
[0071]
在一实施例中,处理器1001可以调用存储器1005中存储的更新程序,还执行以下操作:
[0072]
在检测到规则的版本更新时,获取最新版本的规则对应的旁路规则,并获取所述请求
[0073]
采用当前的主路规则执行所述请求获得第一参数,并采用所述旁路规则执行所述请求得到第二参数。
[0074]
在一实施例中,处理器1001可以调用存储器1005中存储的更新程序,还执行以下操作:
[0075]
获取所述旁路规则对应的执行策略;
[0076]
根据所述执行策略在各个所述请求中确定目标请求;
[0077]
采用所述旁路规则执行所述目标请求得到第二参数。
[0078]
在一实施例中,处理器1001可以调用存储器1005中存储的更新程序,还执行以下操作:
[0079]
所述执行策略包括旁路规则的应用场景、旁路规则的执行时间段、旁路规则的状
态及/或请求比例;所述请求比例为所述主路规则执行请求的数量与所述旁路规则执行请求的数量之间的比例。
[0080]
在一实施例中,处理器1001可以调用存储器1005中存储的更新程序,还执行以下操作:
[0081]
根据所述执行策略确定所述旁路规则是否满足启用条件;
[0082]
在确定所述旁路规则满足启用条件时,执行所述根据所述执行策略在各个所述请求中确定目标请求的步骤。
[0083]
在一实施例中,处理器1001可以调用存储器1005中存储的更新程序,还执行以下操作:
[0084]
所述请求对应的应用场景匹配所述旁路规则的应用场景;
[0085]
当前时间点处于所述旁路规则的执行时间段;
[0086]
所述旁路规则的状态为启用。
[0087]
在一实施例中,处理器1001可以调用存储器1005中存储的更新程序,还执行以下操作:
[0088]
获取所述终端的负荷参数;
[0089]
根据所述负荷参数确定所述请求比例,其中,所述负荷参数与所述请求比例为负相关关系。
[0090]
在一实施例中,处理器1001可以调用存储器1005中存储的更新程序,还执行以下操作:
[0091]
获取终端在目标时间段内执行规则的日志;
[0092]
根据所述日志确定所述终端执行规则输出的第三参数,并根据所述日志获取所述终端执行规则的总次数;
[0093]
对各个所述第三参数进行分类,以得到每一类第三参数的数量;
[0094]
在各个所述数量中确定最小数量,并根据所述最小数量与所述总次数的比值确定所述请求比例。
[0095]
在一实施例中,处理器1001可以调用存储器1005中存储的更新程序,还执行以下操作:
[0096]
确定所述第一参数与所述第二参数之间的差值;
[0097]
在所述差值小于预设差值时,执行所述确定所述的第二参数是否匹配所述第一参数的步骤。
[0098]
基于上述终端的硬件结构,提出本发明规则的更新方法的各实施例。
[0099]
本发明提供一种规则的更新方法。
[0100]
参照图2,图2为本发明规则的更新方法第一实施例,所述规则的更新方法包括:
[0101]
步骤s10,获取第一参数,其中,所述第一参数为终端采用主路规则执行请求后输出的参数,所述第二参数为所述终端采用旁路规则执行所述请求后输出的参数,所述旁路规则的版本高于所述主路规则的版本;
[0102]
步骤s20,获取第二参数,所述第二参数为所述终端采用旁路规则执行所述请求后输出的参数,所述旁路规则的版本高于所述主路规则的版本;
[0103]
在本实施例中,执行主体为终端。终端内设有规则引擎,规则引擎为一种嵌入至应
用程序中的组件,可以实现将业务决策从应用程序代码中分离出来,并使用预定义的语义编写模块便也业务决策。规则引擎可以将复杂、冗余的业务规则从整个系统中分离开,做到构架的可复用移植。本实施例中通过规则引擎执行规则。具体的,规则对应的规则文件加载至规则引擎,规则引擎接收数据的输入,并基于加载的规则文件采用规则对输入的数据进行分析,再输出参数。
[0104]
终端可以视为服务器或者业务系统。新的规则发生变化时,规则发布中心会将信息下发到终端,终端则会下载以获取新的规则对应的规则文件,并将规则文件进行拷贝复制,通过不同的命名方式将一个规则文件命名为主路规则,另一个规则文件则命名为旁路规则,也即主路规则以及旁路规则具有相同的规则文件。
[0105]
假设主路规则rule_a对应的规则文件为rule_a_main_v1.ser。其中,rule_a为规则签名,规则签名相当于规则的id,main表征该规则文件为主路规则的规则文件,而v1则为规则的版本号。在实践中,规则文件(rule_a_main_v1.ser)通过规则发布中心发布到终端,规则文件的文件名会被发布中心去掉版本号以在终端进行部署,也即规则部署到终端后,规则引擎运行时环境的规则文件为rule_a_main.ser。若业务需要调整,需要对该业务对应规则里面的逻辑进行变更,规则文件变更到版本v2,对应的规则文件为rule_a_main_v2.ser。
[0106]
进一步的,在通过规则发布中心发布更新规则到v2,先发布v2版本的旁路规则文件rule_a_side_v2.ser到终端,终端将旁路规则文件在规则引擎上进行注册,也即将旁路规则注册的签名为rule_a_bak,且去掉版本号,规则文件rule_a_side.ser。side表示该规则文件为旁路规则的规则文件。
[0107]
终端在获取旁路规则后,获取各个请求,请求可为业务请求。例如,请求可为开户请求、支付请求、充值请求等等。终端通过当前的主路规则执行各个请求得到第一参数,且通过旁路规则执行各个请求得到第二参数。而主路规则的版本是低于旁路规则的版本。
[0108]
需要说明的是,使用规则引擎进行业务决策的终端内,执行时影响业务流程的规则为主路规则。而仅仅是为了获取规则执行后输出的参数用于分析规则的合理性,不影响业务的流程的规则,为旁路规则。
[0109]
步骤s30,确定所述第二参数是否匹配所述第一参数;
[0110]
步骤s40,在所述第二参数匹配所述第一参数时,将所述主路规则替换为所述旁路规则,以对主路规则进行更新。
[0111]
终端在得到第一参数与第二参数后,确定第二参数是否匹配第一参数。具体的,终端计算第二参数与第一参数之间的差值,差值表征第一参数与第二参数之间的差异,若是差值小于预设差值,即可确定第二参数匹配第一参数,也即差异是否符合预期的。需要说明的是,引擎规则执行的请求为多个,则进行比对的第一参数与第二参数所对应的请求是相同,也即每个请求对应一个差值,若是差值小于预设差值的数量在预设数量以下,则判定第一参数匹配第二参数。
[0112]
需要说明的是,第一参数以及第二参数可以是具体的数值,也可以是执行请求后的结论。若是第一参数以及第二参数为数值,则采用两者之间的差值确定第一参数是否匹配第二参数。若是第一参数以及第二参数为结论,则比对两个结论是否一致,若是一致,第二参数则匹配第一参数。
[0113]
终端在确定第二参数匹配第一参数,即可判定终端执行新的规则不会出错或者失败,终端再将主路规则替换为旁路规则,从而完成的主路规则的更新。
[0114]
现有技术中,通过在相同或者相近的场景下,分别执行v1版本的规则以及v2版本的规则,再检测规则输出的参数之间的差异,从而评估v2版本的规则是否符合预期。而通过v2版本评估的请求的参数,与通过v1评估的请求的参数,很难找到100%一致的请求,只能找到大致相似的请求进行横向比对;从统计学的角度分析,很难找到条件完全一致的请求进行对照分析,故评估v2版本与v1版本差异,精确性降低。而本实施例中,通过相同的请求执行不同版本的规则得到参数进行高版本规则的评估,能够更加准确的评估高版本的规则是否符合预期。
[0115]
在本实施例提供的技术方案中,终端获取采用主路规则执行请求输出的第一参数以及采用旁路规则执行请求输出的第二参数,主路规则的版本低于旁路规则的版本,在当第一参数匹配第二参数时,则将终端的主路规则替换为旁路规则。本发明通过执行主路规则以及旁路规则分别得到参数,再根据参数验证旁路规则是否存在缺陷,而旁路规则的版本高于主路规则的版本,也即对旁路规则进行缺陷的验证即为对新的规则进行验证,并在验证成功后再进行规则的更新,避免终端执行新规则出错或者失败,进而避免业务受到影响。
[0116]
参照图3,图3为本发明规则的更新方法的第二实施例,基于第一实施例,所述步骤s20之后,还包括:
[0117]
步骤s50,确定所述第二参数是否满足预设条件;
[0118]
步骤s60,在所述第二参数满足所述预设条件时,执行所述确定所述的第二参数是否匹配所述第一参数的步骤;
[0119]
在本实施例中,终端在得到第二参数后,需要根据第二参数确定旁路规则是否出现逻辑问题,也即确定旁路规则是否存在缺陷。具体的,终端中存储有请求所对应的预设条件,预设条件执行该请求所预期的结果。终端确定第二参数是否满足预设条件,若是第二参数满足预设条件,终端再判断第二参数是否匹配第一参数,并在第一参数匹配第二参数时,将主路规则替换为旁路规则,也即执行步骤s30。以下进行具体的举例说明:
[0120]
旧版本的规则是在凌晨1~2点间,用户合计转出金额超过1w元后需要刷脸审核用户身份。但现在发现超过1w元的风险并不高,为了提高用户体验,减少刷脸量,将规则修改为成在凌晨1~2点间,交易总额超过2w后才刷脸审核用户身份。假设该规则有变量:交易时间以及总额,交易时间为txn_time,总额为最近1小时交易发生总额txn_total_amt_1h。在主路规则文件v2中修改业务规则并部署到旁路后,观测在交易时间txn_tim凌晨1~2点内用户的交易金额,若是交易txn_total_amt_1h大于1w小于2w,但存在刷脸,则未达到预期,若当txn_total_amt_1h大于2w,规则才输出刷脸,则符合预期。上述观测凌晨1~2点间之间用户的交易金额即视为请求,预设条件为金额大于2w刷脸审核身份。
[0121]
步骤s70,在所述第二参数不满足所述预设条件时,根据所述第二参数修改所述旁路规则的规则文件以更新旁路规则,并采用更新的旁路规则执行所述请求。
[0122]
而在当第二参数不满足预设条件时,即可确定旁路规则文件的逻辑存在问题,使得终端执行旁路规则时出现错误。对此,终端根据第二参数对应的请求,从而确定执行该请求所对应的逻辑,从而在旁路规则文件中更改该逻辑进行旁路规则文件的更新,终端再返
回执行获取第二参数的步骤。修改的工作可由规则发布人员进行修改,也即终端在确定第二参数不满足预设条件后,将第二参数以及第二参数对应的请求发送至预设终端(预设终端即为规则发布人员的终端),预设终端再将修改后的旁路规则文件发送至终端或者规则发布中心,最后由终端采用更新的旁路规则执行请求。
[0123]
在本实施例提供的技术方案中,终端在获得第二参数后,确定第二吃番薯是否满足预设条件,若是满足预设条件,则将主路规则替换为旁路规则;若是不满足预设条件,则修改旁路规则文件以更新旁路规则,在通过更新的旁路规则执行请求,从而返回获取第二参数,直至将旁路规则修改为不出错的旁路规则,保证终端执行新的规则不会出现错误。
[0124]
参照图4,图4为本发明规则的更新方法第三实施例,基于第一或第二实施例,所述步骤s30之后,还包括:
[0125]
步骤s80,在所述第二参数不匹配所述第一参数时,根据所述第二参数修改所述旁路规则的规则文件,并采用更新的规则文件执行所述请求。
[0126]
在本实施例中,终端在获取的第二参数后,需要确定第二参数是否匹配第一参数,第一参数与第二参数匹配的具体流程参照上述说明。在当第一参数匹配第二参数,即可确定旁路规则的规则文件中并无逻辑错误,终端则将主路规则替换为版本较高的旁路规则,从而完成主路规则的版本升级。
[0127]
而在当第二参数不匹配第一参数,即可确定旁路规则出现错误,则需要更第二参数修改旁路规则对应的规则文件以更新旁路规则,再采用更新旁路规则执行请求,从而返回执行获取第二参数的步骤。根据第二参数修改规则文件的具体流程参照上述说明。
[0128]
需要说明的是,第二参数与第一参数不匹配,可能并不是旁路规则的规则文件中逻辑存在错误,故而,需要先确定两者不匹配的原因是否为旁路规则文件的逻辑出错,若确定原因为旁路规则文件的逻辑出错,在修改旁路规则文件。此外,第二参数是否满足预设条件,也需要先确定两者不匹配的原因是否为旁路规则文件的逻辑出错。终端可以先判断第二参数是否满足预设条件,若是满足,则进一步确定第二参数是否匹配第一参数。
[0129]
在本实施例提供的技术方案中,终端在获得第二参数后,确定第二参数是否匹配第一参数,若是匹配,则将主路规则替换为旁路规则,若是不匹配,则根据第二参数修改旁路规则的规则文件以更新旁路规则,在通过更新的旁路规则执行请求,从而返回获取第二参数,直至将旁路规则修改为不出错的旁路规则,保证终端执行新的规则不会出现错误。
[0130]
参照图5,图5为本发明规则的更新方法的第四实施例,所述步骤s10以及步骤s20包括:
[0131]
步骤s11,在检测到规则的版本更新时,获取最新版本的规则对应的旁路规则,并获取请求;
[0132]
步骤s12,在采用当前的主路规则执行所述请求获得第一参数,并采用所述旁路规则执行所述请求得到第二参数。
[0133]
在本实施例中,规则发布中心在检测到规则的版本更新时,则会向终端发送信息,使得终端检测到规则版本已更新。终端则通过规则发布中心下载最新版本对应的旁路规则,或者,规则发布中线直接将旁路规则的文本部署至终端的规则引擎中,使得终端获取最新版本的规则对应的旁路规则。终端在获取各个请求。
[0134]
终端在采用当前的主路规则执行请求得到第一参数,并采用旁路规则执行请求得
到第二参数。
[0135]
终端在采用当前的主路规则执行请求得到第一参数的流程如下:
[0136]
终端通过调用规则执行工具类ruleexecutor使得规则引擎执行主路规则,而传入的参数包括:规则签名(rule_alias),规则输入参数对象input_obj,以及空的规则输出参数对象output_obj。执行工具类ruleexeccutor通过参数,调用规则引擎。规则引擎执行主路规则的步骤为:
[0137]
a、通过规则签名(rule_alias)载入相应的规则文件(主路规则的规则文件);
[0138]
b、执行主路规则;
[0139]
c、把主路规则执行的输出参数,设置到规则输出对象output_obj。
[0140]
ruleexecutor再对规则执行结果进行处理。具体的,将主路规则执行的详细信息记录到主路规则的执行详细表:rule_exec_detl_main。执行详细表包括:调用流水号、规则信息(签名与版本号)、规则引擎入参详情、规则引擎出参详情;ruleexecutor发送规则执行结果到终端,包括:规则签名(rule_a),规则版本(v1),规则执行结论(1—通过;2—拒绝;3—验短)。执行结果即为第一参数。
[0141]
终端在采用旁路规则执行请求得到第二参数的流程如下:
[0142]
ruleexecutor启动新的线程调用旁路规则服务sideruleexecservice,传入的参数,传入的参数即为规则签名(rule_alias),规则输入参数对象input_obj,以及空的规则输出参数对象output_obj。执行旁路规则的流程与执行主路规则的流程可一致,在此不再进行赘述。
[0143]
终端执行主路规则以及执行旁路规则为异步执行,异步执行指的是:主路规则的执行与旁路规则的执行不会相互产生影响,也即旁路规则的执行不会影响主路的通过率,响应时间,错误率等关键指标。可以理解的是,基于异步执行,终端可以先执行主路规则在执行旁路规则,可以先执行旁路规则在执行主路规则,也可以同时进行主路规则以及旁路规则的执行。
[0144]
在本实施例提供的技术方案中,终端在检测到版本更新时,获取最新版本的规则对应的旁路规则,并获取请求,在采用当前的主路规则执行请求获得第一参数,且采用旁路规则执行请求得到第二参数,从而根据第一参数以及第二参数,更新主路规则,避免终端执行新的规则出错。
[0145]
在一实施例中,采用所述旁路规则执行所述请求得到第二参数包括:
[0146]
c1、获取所述旁路规则对应的执行策略;
[0147]
c2、根据所述执行策略在各个所述请求中确定目标请求;
[0148]
c3、采用所述旁路规则执行所述目标请求得到第二参数。
[0149]
在本实施例中,终端在执行旁路规则之前,会建立旁路配置表cfg_rule_sideway。旁路配置表包括:rule_alias:主路规则签名;sw_rule_alias:旁路规则签名;oper_type:规则应用的场景,如开户、支付、充值等;desc:规则应用场景的中文描述;enabled:旁路规则是否启用;effect_from:旁路规则启用开始时间;expire_date:旁路规则启用结束时间;percent:进入旁路规则相对于主路规则的比例。下表为一个示例的旁路配置信息:
[0150][0151]
终端可以根据旁路配置信息获取旁路规则的执行策略。执行策略包括旁路规则的应用场景、旁路规则的执行时间段、旁路规则的状态及/或请求比例;其中,请求比例为主路规则执行请求的数量与旁路规则执行请求的数量之间的比例,也即请求比例为进入旁路规则相对于主路规则的比例。旁路规则的执行时间段根据effect_from以及expire_date确定。旁路规则的状态则根据旁路规则是否启用确定,状态为启用以及不启用,上述表格中的y即为旁路规则启用。
[0152]
终端根据执行策略在各个请求中确定目标请求。具体的,执行策略中要求旁路规则的应用场景为开户、支付以及充值,则将开户、支付以及充值的的请求确定为目标请求。此外,终端可以根据请求比例确定目标请求,例如请求比例为30%,而执行主路规则时候的请求为10,则随机在10个请求中获取3个请求作为目标请求。
[0153]
请求比例的确定包括两种方式。
[0154]
方式a:获取终端的负荷参数,从而根据负荷参数确定请求比例,负荷参数与请求比例为负相关关系,也即负荷参数越大,则请求比例越小。也即终端的负荷较小,设置请求比例较小大,以采用多个请求更加全面的准确的确定旁路规则是否出错。若是负荷较大,则设置请求比例较小,避免终端超负荷工作。负荷参数可以通过终端的响应时间表征,响应时间越长,则负荷越大。负荷参数也可以通过负载情况进行表征。
[0155]
方式b:获取终端在目标时间段内执行规则的日志,目标时间段优选为最近几天的时间。日志中记载有终端执行规则输出的参数、参数的种类以及执行规则的总次数。终端根据日志确定终端执行规则输出的第三参数以及执行规则的总次数。终端再对各个第三参数进行分类得到每一类第三参数的数量,在在各个数量中确定自小数量,最小数量与总次数的比值即可确定请求比例。每一类第三参数所对应的应用场景是相同的。
[0156]
具体的,对于目标时间段选择:目标时间段一般选择多于24小时,24小时可以代表一个完整的采样周期,并且一般在t+1(1即为一天,t为小时),rule_exec_detl_main(rule_exec_detl_main可视为在终端t+1内执行规则的日志)检查各种输入参数的场景是否均在旁路规则中进行验证,也即统计rule_exec_detl_main中保存的输入参数的各个类型。如果存在为未验证的场景,可以再增加一天时间增大目标时间段,也即目标时间段由t+1变为t+2日,直到所有场景均已验证。
[0157]
对于请求比例的最小值的设置,可以统计分析rule_exec_detl_main的历史数据得到。采取如下步骤:统计目标时间段内,表rule_exec_detl_main每天每种规则输入参数的类型中的最小次数l,l除以该规则运行的总次数m,l/m即最少出现的应用场景的比例。请求比例可设置大于或等于l/m。
[0158]
至于请求比例的最大值,采取的策略是:在最小次数的基础上,通过终端的负荷参数进行最小请求比例的增大,也即在负载以及响应时间较小的情况下,增大请求比例。
[0159]
在一实施例中,获取所述旁路规则对应的执行策略的步骤之后,还包括:
[0160]
s1、根据所述执行策略确定所述旁路规则是否满足启用条件;
[0161]
s2、在确定所述旁路规则满足启用条件时,执行所述根据所述执行策略在各个所述请求中确定目标请求的步骤。
[0162]
在本实施例中,终端在确定执行策略后,需要根据执行策略判断旁路规则是否满足启用条件。若是满足,则执行根据执行策略在各个请求中确定目标请求的步骤。启用条件包括以下至少一种:请求对应的应用场景匹配旁路规则的应用场景、当前时间点处于旁路规则的执行时间段、旁路规则的状态为启用。终端通过启用条件即可准确的确定终端是否需要更新主路规则。
[0163]
本发明规则的更新方法主要包括以下步骤:
[0164]
a、终端获取规则发布中心发布的最新版本的规则所对应的旁路规则;
[0165]
b、终端采用当前的主路规则执行请求得到第一参数,且采用旁路规则执行请求得到第二参数;
[0166]
c、终端判断第二参数是否满足预设条件以确定旁路规则的执行结果是否符合预期;
[0167]
d、若是符合预期,确定第一参数与第二参数是否匹配,以确定旁路规则是否出错,若是不出错,则将主路规则替换为旁路规则,完成最先版本的主路规则的更新;
[0168]
e、若是第二参数不满足预设条件,或者第一参数与第二参数不匹配,则修改旁路规则的规则文件,并返回步骤b重新获取第二参数。
[0169]
采用上述方式更新主路规则具有如下优点:
[0170]
路规则异步执行,不影响主路服务的响应时间(主路服务用于执行主路规则),对主路服务的吞吐量影响较小;
[0171]
通过终端内的监控平台可以实时的观测到主路、旁路规则运行状态。若更新规则后,评估新旧版本规则的结论比率不符合预期,可以进行较早的干预。例如,对旁路规则结论通过率进行监控,若实时通过率低于某个阈值,则及时告警通知利益相关方对应的规则负责人,对旁路规则中的业务规则进行确认,若发现规则不符合预期,需要推规则中的业务规则进行调整,然后再次发布旁路规则的规则文件,对旁路规则再次进行在线更新;
[0172]
同一笔请求,在主路和旁路规则运行时的输入参数相同,更容易通过比较结论的差异,来衡量旁路规则是否符合预期;
[0173]
在对主路规则进行更新前,先通过旁路规则进行验证,验证无误后,再更新主路,降低主路规则更新带来的各种操作风险。
[0174]
本发明还提供一种终端。
[0175]
参照图6,图6为本发明终端的功能模块示意图。
[0176]
如图6所示,所述终端包括:
[0177]
获取模块10,用于获取第一参数,并获取第二参数,其中,所述第一参数为终端采用主路规则执行请求后输出的参数,所述第二参数为所述终端采用旁路规则执行所述请求后输出的参数,所述旁路规则的版本高于所述主路规则的版本;
[0178]
确定模块20,用于确定所述的第二参数是否匹配所述第一参数;
[0179]
更新模块30,用于在所述第二参数匹配所述第一参数时,将所述主路规则替换为所述旁路规则,以对主路规则进行更新。
[0180]
在一实施例中,所述终端包括:
[0181]
确定模块,用于确定所述第二参数是否满足预设条件;
[0182]
执行模块,用于在所述第二参数满足所述预设条件时,执行所述确定所述的第二参数是否匹配所述第一参数的步骤;
[0183]
修改模块,用于在所述第二参数不匹配所述预设阈值时,根据所述第二参数修改所述旁路规则的规则文件以更新旁路规则,并采用更新的旁路规则执行所述请求,以返回执行所述获取第二参数的步骤。
[0184]
在一实施例中,所述终端包括:
[0185]
确定模块,用于确定所述的第二参数是否匹配所述第一参数;
[0186]
执行模块,用于在所述第二参数匹配所述第一参数时,执行所述在所述第二参数匹配所述第一参数时,将所述终端的当前规则更新为所述主路规则的步骤;
[0187]
更新模块,用于在所述第二参数不匹配所述第一参数时,根据所述第二参数修改所述旁路规则的规则文件以更新旁路规则,并采用更新的旁路规则执行所述请求,以返回执行所述获取第二参数的步骤。
[0188]
在一实施例中,所述终端包括:
[0189]
获取模块,用于在检测到规则的版本更新时,获取最新版本的规则对应的旁路规则,并获取所述请求
[0190]
执行模块,用于采用当前的主路规则执行所述请求获得第一参数,并采用所述旁路规则执行所述请求得到第二参数。
[0191]
在一实施例中,所述终端包括:
[0192]
获取模块,用于获取所述旁路规则对应的执行策略;
[0193]
确定模块,用于根据所述执行策略在各个所述请求中确定目标请求;
[0194]
执行模块,用于采用所述旁路规则执行所述目标请求得到第二参数。
[0195]
在一实施例中,所述终端包括:
[0196]
确定模块,用于根据所述执行策略确定所述旁路规则是否满足启用条件;
[0197]
执行模块,用于在确定所述旁路规则满足启用条件时,执行所述根据所述执行策略在各个所述请求中确定目标请求的步骤。
[0198]
在一实施例中,所述终端包括:
[0199]
获取模块,用于获取所述终端的负荷参数;
[0200]
确定模块,用于根据所述负荷参数确定所述请求比例,其中,所述负荷参数与所述请求比例为负相关关系。
[0201]
在一实施例中,所述终端包括:
[0202]
获取模块,用于获取终端在目标时间段内执行规则的日志;
[0203]
确定模块,用于根据所述日志确定所述终端执行规则输出的第三参数,并根据所述日志获取所述终端执行规则的总次数;
[0204]
分类模块,用于对各个所述第三参数进行分类,以得到每一类第三参数的数量;
[0205]
确定模块,用于在各个所述数量中确定最小数量,并根据所述最小数量与所述总次数的比值确定所述请求比例。
[0206]
在一实施例中,所述终端包括:
[0207]
确定模块,用于确定所述第一参数与所述第二参数之间的差值;
[0208]
执行模块,用于在所述差值小于预设差值时,执行所确定所述的第二参数是否匹配所述第一参数的步骤。
[0209]
其中,上述终端中各个模块的功能实现与上述规则的更新方法实施例中各步骤相对应,其功能和实现过程在此处不再一一赘述。
[0210]
本发明还提供一种计算机可读存储介质,该计算机可读存储介质上存储有更新程序,所述确定程序被处理器执行时实现如以上任一项实施例所述的规则的更新方法的步骤。
[0211]
本发明计算机可读存储介质的具体实施例与上述规则的更新方法各实施例基本相同,在此不作赘述。
[0212]
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
[0213]
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0214]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
[0215]
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1