[发明专利]一种决策引擎中规则运行文件的处理方法和装置在审
申请号: | 202210657556.2 | 申请日: | 2022-06-10 |
公开(公告)号: | CN114942770A | 公开(公告)日: | 2022-08-26 |
发明(设计)人: | 徐凤阳;王瑞;谷浩伟 | 申请(专利权)人: | 北京宇信科技集团股份有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F9/445;G06F9/455 |
代理公司: | 北京卓岚智财知识产权代理事务所(特殊普通合伙) 11624 | 代理人: | 沈煜华 |
地址: | 100044 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 决策 引擎 规则 运行 文件 处理 方法 装置 | ||
本发明实施例提供一种决策引擎中规则运行文件的处理方法和装置,该方法包括:步骤S1:将同一个规则集以不同的版本号多次发布部署后生成多个规则运行文件;步骤S2:读取多个规则运行文件,并且解析、编译以及类加载多个规则运行文件,生成多个规则集Class类;步骤S3:获取多个所述规则集Class类,执行规则集Class类中的规则方法,获得规则方法的输出值;步骤S4:将规则方法的输出值赋值给用户自定义的输出参数变量,规则计算的结果则为输出参数变量的值。本发明实施例中的决策引擎可以支持在规则集多版本的场景下进行计算的技术问题。
技术领域
本发明涉及Java软件技术领域,尤其涉及一种决策引擎中规则运行文件的处理方法和装置。
背景技术
决策引擎是一款业务规则运营管理产品,由推理引擎发展而来,实现了将业务规则从应用程序代码中分离出来以满足频繁变化的业务规则需求。
在实现本发明过程中,发明人发现现有技术中的决策引擎不支持在规则集多版本的场景下进行计算,以及决策引擎不支持在按规则优先级的场景下进行计算。
发明内容
有鉴于此,本发明实施例的目的在于提供一种决策引擎中规则运行文件的处理方法和装置,以解决现有技术中心决策引擎不支持在规则集多版本的场景下进行计算的技术问题。
为达到上述目的,第一方面,本发明提供一种决策引擎中规则运行文件的处理方法,包括:
步骤S1:将同一个规则集以不同的版本号多次发布部署后生成多个规则运行文件;
步骤S2:读取多个所述规则运行文件,并且解析、编译以及类加载多个所述规则运行文件,生成多个规则集Class类;
步骤S3:获取多个所述规则集Class类,执行所述规则集Class类中的规则方法,并获取所述规则方法的输出值;
步骤S4:将所述规则方法的输出值赋值给用户自定义的输出参数变量,获得所述输出参数变量的值。
在一些可能的实施方式中,所述步骤S1可以包括:
步骤S11:在决策引擎定义端的配置文件中为同一个规则集配置不同的版本号;
步骤S12:对同一个规则集以不同的版本号多次发布部署后,生成多个规则运行文件,每个所述规则运行文件的文件名称包括规则集id和版本号。
在一些可能的实施方式中,所述步骤S2可以包括:
步骤S21:读取多个所述规则运行文件;
步骤S22:对每个所述规则运行文件的规则内容进行语法解析,获得所述规则内容的伪代码,并将所述伪代码转化为规则集Java语言代码;
步骤S23:将每个所述规则运行文件的文件名作为规则集Java类名,编译所述规则集Java语言代码,生成多个Class二进制文件;
步骤S24:将所述多个Class二进制文件加载到JVM内存中,生成多个以所述规则运行文件的文件名命名的规则集Class类。
在一些可能的实施方式中,所述步骤S3可以包括:
步骤S31:获取每个所述规则集Class类,并利用Java反射机制分别将每个所述规则集Class类生成规则集Class类对象;
步骤S32:按照所述规则集Class类对象执行所述规则集Class类中的规则方法,获得规则方法的输出值。
第二方面,本发明实施例提供了一种决策引擎中规则运行文件的处理方法,包括:
步骤S1’:在决策引擎定义端的可视化界面设置规则集的规则优先级字段值之后,通过发布部署生成规则运行文件,所述规则优先级字段值存储在所述规则运行文件中;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京宇信科技集团股份有限公司,未经北京宇信科技集团股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210657556.2/2.html,转载请声明来源钻瓜专利网。