全网唯一标准王
(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202210565728.3 (22)申请日 2022.05.23 (71)申请人 新华三技术有限公司 地址 310052 浙江省杭州市滨江区长河路 466号 (72)发明人 宛清  (51)Int.Cl. G06F 16/21(2019.01) G06F 16/2455(2019.01) (54)发明名称 通信方法及装置 (57)摘要 本申请提供一种通信方法及装置, 该方法包 括: 当lib 库创建的工作线 程与Redi s数据库断连 且重新建立连接后, 获取第一命令编号; 识别第 一命令编号是否处于命令编号区间内; 若处于, 则以第二命令编号为起始编号, 以命令编号区间 内第三命令编号为结束编号, 获取起始编号与结 束编号之间的全部命令编号; 向工作线程发送全 部命令编号中每个命令编号对应的第一业务数 据, 以使得工作线程将第一业务数据封装为第一 操作命令后向Redi s数据库发送, 进而使得 Redis 数据库再次执 行第一操作命令 。 权利要求书3页 说明书12页 附图2页 CN 115033554 A 2022.09.09 CN 115033554 A 1.一种通信方法, 其特征在于, 所述方法应用于lib库主线程, lib库在被业务模块初始 化时创建存储缓冲区, 所述存储缓冲区内存储待发送至Redis数据库的每条业务数据的命 令编号, 多条业 务数据的命令编号组成命令编号区间, 所述方法包括: 当所述lib库创建的工作线程与所述Redis数据库断连且重新建立连接后, 获取第一命 令编号, 所述第一命令编号 为所述Redis数据库执 行的最后一条成功操作命令的编号; 识别所述第一命令编号是否处于所述命令编号区间内; 若处于, 则以第二命令编号为起始编号, 以所述命令编号区间内第三命令编号为结束 编号, 获取所述起始编号与所述结束编号之间的全部命令编号, 所述第二命令编号为与所 述第一命令编号相邻且编号值大于所述第一命令编号的编号值, 所述第三命令编号为所述 命令编号区间内的命令编号 最大值; 向所述工作线程发送所述全部命令编 号中每个命令编 号对应的第 一业务数据, 以使得 所述工作线程将所述第一业务数据封装为第一操作命令后向所述Redis数据库 发送, 进而 使得所述Redis数据库再次执 行所述第一操作命令 。 2.根据权利要求1所述的方法, 其特 征在于, 所述方法还 包括: 若未处于, 则向所述业务模块发送第一通知消息, 以使得所述业务模块确定所述Redis 数据库为ready状态; 接收所述业务模块发送的所述工作线程与所述Redis数据库断连之前已下发的全部业 务数据; 向所述工作线程发送所述全部业务数据, 以使得所述工作线程将所述全部业务数据封 装为对应的操作命令, 并向所述Redis数据库发送全部操作命令, 进而使得所述Redis数据 库再次执 行所述全部操作命令 。 3.根据权利 要求1所述的方法, 其特征在于, 所述当所述lib库创建的工作线程与Redis 数据库断连且重新建立连接后, 获取第一命令编号之前, 所述方法还 包括: 当所述工作线程与所述Redis数据库建立连接后, 获取第二业务数据以及所述第二业 务数据的命令编号; 将所述第二 业务数据以及所述第二 业务数据的命令编号存 储至所述存 储缓冲区。 4.根据权利要求3所述的方法, 其特征在于, 所述将所述第 二业务数据以及所述第 二业 务数据的命令编号存 储至所述存 储缓冲区, 具体包括: 判断所述存 储缓冲区内是否存在空余存 储空间; 若存在, 则将所述第 二业务数据以及所述第 二业务数据的命令编 号存储至所述存储缓 冲区; 若未存在, 则从所述存储缓冲区内获取命令编号最小值对应的业务数据, 将所述命令 编号最小值对应的业务数据删除, 并将所述第二业务数据以及所述第二业务数据的命令编 号存储至所述存 储缓冲区。 5.根据权利要求1所述的方法, 其特 征在于, 所述方法还 包括: 当所述工作线程与所述Redis数据库断连后, 获取第三业务数据以及所述第三业务数 据的命令编号; 将第三业务数据以及所述第三 业务数据的命令编号存 储至所述缓冲区。 6.根据权利要求5所述的方法, 其特征在于, 所述将第 三业务数据以及所述第 三业务数权 利 要 求 书 1/3 页 2 CN 115033554 A 2据的命令编号存 储至所述缓冲区, 具体包括: 判断所述存 储缓冲区内是否存在空余存 储空间; 若存在, 则将所述第 三业务数据以及所述第 三业务数据的命令编 号存储至所述存储缓 冲区存储至所述存 储缓冲区; 若未存在, 则从所述存储缓冲区内获取命令编号最小值对应的业务数据, 识别所述命 令编号最小值对应的业 务数据是否已被所述Redis数据库执 行成功; 若执行失败, 则保留所述命令编号最小值对应的业务数据, 并将所述工作线程与所述 Redis数据库之间的连接状态设置为异常状态; 向所述业务模块发送第二通知消息, 以使得所述业务模块确定所述Redis数据库 为not  ready状态并不再向所述 lib库主进程传入发送业 务数据; 删除所述存 储缓冲区内已存 储的全部业 务数据以及所述全部业 务数据的命令编号。 7.根据权利要求6所述的方法, 其特 征在于, 所述方法还 包括: 当所述工作线程与所述Redis数据库重新建立连接后, 向所述工作线程发送第三通知 消息, 以使得 所述工作线程确定所述Redis数据库为ready状态; 接收所述业务模块发送的所述工作线程与所述Redis数据库断连之前已下发的全部业 务数据; 向所述工作线程发送所述全部业务数据, 以使得所述工作线程将所述全部业务数据封 装为对应的操作命令, 并向所述Redis数据库发送全部操作命令, 进而使得所述Redis数据 库再次执 行所述全部操作命令 。 8.一种通信装置, 其特征在于, 所述装置应用于lib库主线程, lib库在被业务模块初始 化时创建存储缓冲区, 所述存储缓冲区内存储待发送至Redis数据库的每条业务数据的命 令编号, 多条业 务数据的命令编号组成命令编号区间, 所述装置包括: 第一获取单元, 用于当所述lib库创建的工作线程与所述Redis数据库断连且重新建立 连接后, 获取第一命令编号, 所述第一命令编号为所述 Redis数据库执行的最后一条成功操 作命令的编号; 识别单元, 用于识别所述第一命令编号是否处于所述命令编号区间内; 第二获取单元, 用于若处于, 则以第 二命令编号为起始编号, 以所述命令编号区间内第 三命令编号为结束编号, 获取所述起始编号与所述结束编号之间的全部命令编号, 所述第 二命令编号为与所述第一命令编号相 邻且编号值大于所述第一命令编号的编号值, 所述第 三命令编号 为所述命令编号区间内的命令编号 最大值; 发送单元, 用于向所述工作线程发送所述全部命令编 号中每个命令编号对应的第 一业 务数据, 以使得所述工作线程将所述第一业务数据封装为第一操作命令后向所述Redis数 据库发送, 进 而使得所述Redis数据库再次执 行所述第一操作命令 。 9.根据权利要求8所述的装置, 其特征在于, 所述发送单元还用于, 若未处于, 则向所述 业务模块发送第一 通知消息, 以使得 所述业务模块确定所述Redis数据库为ready状态; 所述装置还包括: 接收单元, 用于接收所述业务模块发送的所述工作线程与所述Redis 数据库断连之前已下发的全部业 务数据; 所述发送单元还用于, 向所述工作线程发送所述全部业务数据, 以使得所述工作线程 将所述全部业务数据封装为对应的操作命令, 并向所述 Redis数据库发送全部操作命令, 进权 利 要 求 书 2/3 页 3 CN 115033554 A 3

.PDF文档 专利 通信方法及装置

文档预览
中文文档 18 页 50 下载 1000 浏览 0 评论 309 收藏 3.0分
温馨提示:本文档共18页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 通信方法及装置 第 1 页 专利 通信方法及装置 第 2 页 专利 通信方法及装置 第 3 页
下载文档到电脑,方便使用
本文档由 人生无常 于 2024-03-18 00:16:51上传分享
友情链接
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。