[发明专利]进行通信的方法和通信设备有效
申请号: | 201810576190.X | 申请日: | 2018-06-05 |
公开(公告)号: | CN108874560B | 公开(公告)日: | 2022-09-09 |
发明(设计)人: | 王磊;李革委 | 申请(专利权)人: | 腾讯音乐娱乐科技(深圳)有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54 |
代理公司: | 北京三高永信知识产权代理有限责任公司 11138 | 代理人: | 滕一斌 |
地址: | 518000 广东省深圳市*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 进行 通信 方法 设备 | ||
1.一种进行通信的方法,其特征在于,所述方法包括:
获取当前消息队列对应的读偏移和写偏移,其中,所述写偏移用于指示当前已经写入数据的数据块的最大索引号,所述读偏移用于指示当前已经读出数据的数据块的最大索引号;
如果所述读偏移小于所述写偏移,获取所述读偏移对应的数据块相邻的下一个数据块的索引号对应的状态标识;如果所述状态标识是完成标识,且所述下一个数据块的索引号对应的序号为预设数值,或,如果所述状态标识不是完成标识,且所述下一个数据块的索引号对应的序号为预设数值,且在预设时长之内所述状态标识被更新为完成标识,则将所述读偏移加一得到待读取第二消息占用的数据块的最小索引号,根据所述最小索引号确定所述第二消息的数据量,根据所述第二消息的数据量,确定所述第二消息占用所述消息队列中数据块的数目,根据所述最小索引号和所述数目得到第二消息占用的数据块的最大索引号,根据所述最小索引号和所述最大索引号确定所述第二消息占用所述消息队列中的数据块,并将所述读偏移更新为所述读偏移与确定出的数据块的数目之和;
根据所述第二消息的数据量,从所述确定出的数据块中,读取所述第二消息;
其中,所述序号用于指示对应的数据块为消息所占用的数据块中的第几个数据块,所述预设数值用于指示所述第二消息占用的第一个数据块,所述第二消息占用的数据块的最小索引号对应存储的序号为所述预设数值,且所述最小索引号还对应存储所述第二消息的总数据量,对于所述第二消息占用的数据块中除所述最小索引号外的其他索引号,根据所述其他索引号所对应的数据块与所述最小索引号对应的数据块的排列顺序,对应存储有对应的序号,所述其他索引号中的每个索引号还对应存储在所述每个索引号对应的数据块中写入的数据量,
所述第二消息在写入消息队列的过程中,是按照所需占用的数据块的索引号从大到小的顺序依次写入到各个数据块中的。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果所述状态标识不是完成标识,且所述序号为所述预设数值,且在预设时长内所述状态标识未更新为完成标识,则放弃读取所述第二消息。
3.一种通信设备,其特征在于,所述通信设备包括:
获取模块,用于获取当前消息队列对应的读偏移和写偏移,其中,所述写偏移用于指示当前已经写入数据的数据块的最大索引号,所述读偏移用于指示当前已经读出数据的数据块的最大索引号;
确定模块,用于如果所述读偏移小于所述写偏移,获取所述读偏移对应的数据块相邻的下一个数据块的索引号对应的状态标识;如果所述状态标识是完成标识,且所述下一个数据块的索引号对应的序号为预设数值,或,如果所述状态标识不是完成标识,且所述下一个数据块的索引号对应的序号为预设数值,且在预设时长之内所述状态标识被更新为完成标识,则将所述读偏移加一得到待读取第二消息占用的数据块的最小索引号,根据所述最小索引号确定所述第二消息的数据量,根据所述第二消息的数据量,确定所述第二消息占用所述消息队列中数据块的数目,根据所述最小索引号和所述数目得到第二消息占用的数据块的最大索引号,根据所述最小索引号和所述最大索引号确定所述第二消息占用所述消息队列中的数据块,并将所述读偏移更新为所述读偏移与确定出的数据块的数目之和;
读取模块,用于根据所述第二消息的数据量,从所述确定出的数据块中,读取所述第二消息;
其中,所述序号用于指示对应的数据块为消息所占用的数据块中的第几个数据块,所述预设数值用于指示所述第二消息占用的第一个数据块,所述第二消息占用的数据块的最小索引号对应存储的序号为所述预设数值,且所述最小索引号还对应存储所述第二消息的总数据量,对于所述第二消息占用的数据块中除所述最小索引号外的其他索引号,根据所述其他索引号所对应的数据块与所述最小索引号对应的数据块的排列顺序,对应存储有对应的序号,所述其他索引号中的每个索引号还对应存储在所述每个索引号对应的数据块中写入的数据量,
所述第二消息在写入消息队列的过程中,是按照所需占用的数据块的索引号从大到小的顺序依次写入到各个数据块中的。
4.根据权利要求3所述的通信设备,其特征在于,所述确定模块,还用于:
如果所述状态标识不是完成标识,且所述序号为所述预设数值,且在预设时长内所述状态标识未更新为完成标识,则放弃读取所述第二消息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯音乐娱乐科技(深圳)有限公司,未经腾讯音乐娱乐科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810576190.X/1.html,转载请声明来源钻瓜专利网。