[发明专利]基于有向图处理自定义公式的方法、系统及存储介质在审
| 申请号: | 202111119570.9 | 申请日: | 2021-09-24 |
| 公开(公告)号: | CN113886459A | 公开(公告)日: | 2022-01-04 |
| 发明(设计)人: | 李茂盛;王程华;朱名墙;孙迁 | 申请(专利权)人: | 深圳市云网万店电子商务有限公司 |
| 主分类号: | G06F16/2458 | 分类号: | G06F16/2458 |
| 代理公司: | 北京市万慧达律师事务所 11111 | 代理人: | 黄玉东 |
| 地址: | 518020 广东省深圳市罗湖区东门街道城*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 基于 处理 自定义 公式 方法 系统 存储 介质 | ||
1.一种基于有向图处理自定义公式的方法,其特征在于,该方法包括:
从存储区加载自定义公式并查找公式所依赖的元素,根据所述元素正向构建有向图;
利用环检测算法对所述有向图中的元素进行依赖检测;
执行反向依赖处理过程,对公式进行化简;
根据公式ID查询到简化后的自定义公式并代入业务系统完成计算。
2.如权利要求1所述的方法,其特征在于,所述自定义公式存储在Zookeeper节点中并被分配唯一ID,并在MySQL保存备份。
3.如权利要求2所述的方法,其特征在于,所述方法还包括:自动监测各所述Zookeeper节点的数据变化,当所述Zookeeper节点出现自定义公式更新时,重新从所述存储区加载更新后的自定义公式并执行后续处理。
4.如权利要求1~3任一所述的方法,其特征在于,在执行反向依赖处理过程中,将自定义处理逻辑抽象化为函数式接口,业务系统根据实际需要进行公式的自定义逻辑处理。
5.如权利要求4所述的方法,其特征在于,所述利用环检测算法对所述有向图中的元素进行依赖检测包括:
构造顶点入度数组,其中,数组下标和顶点索引对应,数组保存对应顶点的入度;
构造辅助队列,入度为0的顶点入队列;
辅助队列中取出入度为0的顶点,对指向的顶点入度减一并更新入度数组,指向顶点入度为0时入队列,否则继续第2步,从队列中取顶点;
处理完所有入度为0的顶点,队列为空时,判断是否存在入度不为0的顶点,如果存在,则说明有向图中有环,做出异常处理,如不存在,则说明有向图中无环,执行后续的反向依赖处理。
6.如权利要求5所述的方法,其特征在于,所述反向依赖处理包括:
构造顶点出度数组,其中,数组下标和顶点索引对应,数组保存对应顶点的出度;
构造辅助队列,出度为0的顶点入队列;
循环执行未访问过的顶点,从队列中取出出度为0顶点,通过自定义函数对取出的所述出度为0的顶点进行数据处理,根据逆向边找到父顶点,父顶点对应出度减一,并标记该父顶点已访问;
遍历出度数组,出度为0且未访问过的顶点入队列;
当所有顶点已访问时退出循环。
7.如权利要求4所述的方法,其特征在于,当自定义处理逻辑为简单的公式替换时,从表示为简单指标的叶子顶点开始,在有向图中向上依次替换自定义公式,最终将整个有向图中的所有顶点中的自定义公式用简单指标表示,直接进行计算;当自定义逻辑根据业务场景需要增加业务逻辑时,在化简过程中将计算出的逻辑数据对应加入叶子顶点对应的公式中,其中,所述的业务逻辑包括:单位换算、比例换算。
8.一种基于有向图处理自定义公式的系统,其特征在于,该系统包括:
公式加载组件,从存储区加载自定义公式并查找公式所依赖的元素,根据所述元素正向构建有向图;
依赖检测处理组件,利用环检测算法对所述有向图中的元素进行依赖检测;
反向依赖处理组件,执行反向依赖处理,对公式进行化简;
计算组件,根据公式ID查询到简化后的自定义公式并代入业务系统计算。
9.如权利要求8所述的系统法,其特征在于,还包括:监测组件,用于监测存储在各Zookeeper节点的自定义公式是否有变化,当存在自定义公式更新时,重新从所述存储区加载更新后的自定义公式并执行后续处理。
10.一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,其特征在于,计算机程序被处理器运行时执行上述权利要求1-7任一项所述的方法的步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市云网万店电子商务有限公司,未经深圳市云网万店电子商务有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111119570.9/1.html,转载请声明来源钻瓜专利网。





