(19)国家知识产权局
(12)发明 专利申请
(10)申请公布号
(43)申请公布日
(21)申请 号 202210428892.X
(22)申请日 2022.04.22
(71)申请人 杭州仟金顶信息科技有限公司
地址 310000 浙江省杭州市滨江区滨安路
756号A区五层518室
(72)发明人 张跃 叶晓丹 叶梅 宓建栋
(74)专利代理 机构 成都佳划信知识产权代理有
限公司 5126 6
专利代理师 楚鸿艳
(51)Int.Cl.
G06F 16/2453(2019.01)
G06F 16/2455(2019.01)
G06F 8/41(2018.01)
(54)发明名称
一种基于Floyd算法的自动查询方法
(57)摘要
本发明涉及数据信息查询与判断技术领域,
尤其涉及一种基于Floyd算法的自动查询方法,
包括如下步骤: 步骤1.系统运行, 进行实例化执
行器; 步骤2.执行器实例化后注册到带权有向
图, 生成带权有向图; 步骤3.调用Flo yd算法获取
所有实例化后的执行器 之间最短距离和路径; 步
骤4.外部查询器通过图架构获取起始执行器和
目标执行器; 步骤5.通过起始执行器和目标执行
器获取执行器 之间的最短距离和路径; 步骤6.执
行目标执行器链路获取最终结果并返回; 步骤7.
重复上述步骤, 本发明只要查询过一次的数据,
在其它函数中再次查询时,不再增加系统IO, 同
时当维护关系发生变更时,无需修改原有代码。
权利要求书2页 说明书5页 附图5页
CN 115114324 A
2022.09.27
CN 115114324 A
1.一种基于Fl oyd算法的自动查询方法, 其特 征在于, 包括如下步骤:
步骤1.系统运行, 进行实例化执 行器;
步骤2.执 行器实例化后注 册到带权有向图, 生成带权有向图;
步骤3.调用Fl oyd算法获取 所有实例化后的执 行器之间最短距离和路径;
步骤4.外 部查询器通过图架构获取起始执 行器和目标 执行器;
步骤5.通过起始执 行器和目标 执行器获取 执行器之间的最短距离和路径;
步骤6.执 行目标执行器链路获取最终结果并返回;
步骤7.重复上述步骤, 直至完成规定查询作业次数, 循环结束, 其中规定查询作业 次数
为实际作业 查询需要次数。
2.根据权利 要求1所述的一种基于Floyd算法的自动查询方法, 其特征在于, 所述步骤1
具体包括如下内容:
步骤1‑1.获取所有执行器的具体实现;
步骤1‑2.获取到具体实现后, 通过反射 技术将执行器实例化;
步骤1‑3.将实例化后的执 行器注册到带权有向图中。
3.根据权利 要求1所述的一种基于Floyd算法的自动查询方法, 其特征在于, 所述步骤2
的具体内容包括如下内容:
步骤2‑1.判断执行器是否已经在带权有向图中, 存在, 直接返回不做处理; 不存在, 则
继续向下 执行作业;
步骤2‑2.将当前执行器加入到执行器列表中, 其中列表中的执行器与带权有向图中的
节点一一对应;
步骤2‑3.获取当前执行器参与关联的字段名称, 通过反射获取当前执行器返回值对象
中的所有字段, 基于关联字段名称过 滤, 最终获取到参与关联字段的名称和数据类型;
步骤2‑4.反射执行器列表中的目标执行器, 获取目标执行器入参的参数名称和数据类
型, 入参的参数名称和数据类型与当前执行器的关联字段名和关联字段数据类型进行匹
配;
步骤2‑5.目标执行器和当前 执行器是否匹配, 不匹配, 则返回; 匹配, 则继续执 行;
步骤2‑6.获取所有匹配的目标 执行器在执 行器列表中的角标;
步骤2‑7.判断角标是否已经被当前执行器持有, 持有, 则跳过; 不持有, 则继续向下执
行;
步骤2‑8.当前执行器添加路径, 每一条路径代表可达执行器的位置角标和到达权重,
位置角标为步骤2 ‑6中所获取的角标, 其中到达权重是通过角标获取对应执行器, 从执行器
中获取到的权 重值。
4.根据权利 要求1所述的一种基于Floyd算法的自动查询方法, 其特征在于, 所述步骤3
具体包括如下内容:
步骤3‑1.初始化距离矩阵, 生成一个两维数组, 长度为执行器列表长度乘以执行器列
表长度;
步骤3‑2.初始化路径矩阵, 生成一个两维数组, 长度为执行器列表长度乘以执行器列
表长度;
步骤3‑3.调用Fl oyd算法, 获取距离和路径。权 利 要 求 书 1/2 页
2
CN 115114324 A
25.根据权利 要求1所述的一种基于Floyd算法的自动查询方法, 其特征在于, 所述步骤4
具体包括如下内容:
步骤4‑1.根据目标对象匹配执行器列表, 匹配条件为目标对象类型和执行器返回对象
类型相同, 进 而获取目标 执行器在列表中的角标列表;
步骤4‑2.根据参数名和参数类型匹配执行器列表, 匹配条件为参数名和参数类型等于
执行器入参的参数名和参数类型, 进 而获取起始执 行器在列表中的角标列表;
步骤4‑3.将初始最短距离设置为无穷大;
步骤4‑4.将起始角标列表和目标角标列表嵌套循环, 用于找到最短距离的角标组合;
步骤4‑5.用当前起始角标和目标角标通过距离矩阵获取两个执 行器的距离;
步骤4‑6.判断初始最短距离是否比获取到的距离短, 初始最短距离比获取到的距离
短, 执行循环完结判断;
步骤4‑7.将获取到的距离赋值给初始最短距离, 同时保存当前距离的角标组合;
步骤4‑8.是否循环完结, 没有完结, 回转执 行步骤4‑5;
步骤4‑9.返回当前最短距离的角标组合。
6.根据权利 要求1所述的一种基于Floyd算法的自动查询方法, 其特征在于, 所述步骤5
具体包括如下内容:
步骤5‑1.判断目标执行器和起始执行器是否相同, 相同, 直接形成执行器调用列表, 其
中列表只有目标执行器一个执行器; 不相同, 则循环从路径矩阵中获取下一个执行器, 拼接
最终的执 行器列表;
步骤5‑2.通过获取矩阵获取 执行器的完整路径;
步骤5‑3.生成执 行器的调用顺序列表。
7.根据权利 要求1所述的一种基于Floyd算法的自动查询方法, 其特征在于, 所述步骤6
具体包括如下内容:
步骤6‑1.判断执 行器是否是第一个执 行器, 判断结果 为是, 则进行 执行获取;
步骤6‑2.通过反射, 获取 执行器的入参名称和数据类型;
步骤6‑3.根据入参名称和数据类型, 通过反射获取上一个执行器返回对象中的数据,
作为执行器的参数;
步骤6‑4.将参数传入执 行器, 执行获取结果, 其中用查询器传入的数据为 参数;
步骤6‑5.执行器将查询结果进行线程基本的缓存, 用于当前线程中的重复查询;
步骤6‑6.判断是否为 最后一个执 行器, 判断结果 为否, 则回转执 行步骤6‑1;
步骤6‑7.返回最后一个执 行器查询到的结果。权 利 要 求 书 2/2 页
3
CN 115114324 A
3
专利 一种基于Floyd算法的自动查询方法
文档预览
中文文档
13 页
50 下载
1000 浏览
0 评论
309 收藏
3.0分
温馨提示:本文档共13页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 人生无常 于 2024-03-18 00:09:30上传分享