会话消息的处理方法、装置、设备及计算机可读存储介质制造方法及图纸

技术编号:37076613 阅读:15 留言:0更新日期:2023-03-29 19:53
本公开涉及一种会话消息的处理方法、装置、设备及计算机可读存储介质,该方法包括:获取分桶的至少一个会话消息;针对所述至少一个会话消息中的每一个会话消息,对所述会话消息进行实时判断,判断所述会话消息是否断开或过期;若所述会话消息断开或过期,则释放所述分桶中所述会话消息占据的内存资源。本公开通过实时对会话信息进行判断,若该会话消息断开或过期,则释放该会话消息占据的内存资源,合理分配了内存资源,减少了资源浪费,提高了用户体验。体验。体验。

【技术实现步骤摘要】
会话消息的处理方法、装置、设备及计算机可读存储介质


[0001]本公开涉及计算机
,尤其涉及一种会话消息的处理方法、装置、设备及计算机可读存储介质。

技术介绍

[0002]分布式应用程序协调服务软件(ZooKeeper)对临时节点的会话管理采用分桶策略,每个分桶的过期时间是绝对的,分桶中的所有会话需要在该分桶的过期时间到达前产生一次有效心跳,从而移动到下一个分桶中,如果在时间到达之前没有进入下一个分桶,那么Zookeeper会在过期时间到达时将该桶中的所有会话按照已过期会话处理,删除掉该分桶对应的临时节点。
[0003]但是,分桶只有在过期时间到达时才会判断会话是否过期,造成了会话过期未及时响应,导致服务延迟响应,造成了资源浪费。

技术实现思路

[0004]为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种会话消息的处理方法、装置、设备及计算机可读存储介质,以合理分配内存资源,减少资源浪费,提高用户体验。
[0005]第一方面,本公开实施例提供一种会话消息的处理方法,包括:
[0006]获取分桶的至少一个会话消息;
[0007]针对所述至少一个会话消息中的每一个会话消息,对所述会话消息进行实时判断,判断所述会话消息是否断开或过期;
[0008]若所述会话消息断开或过期,则释放所述分桶中所述会话消息占据的内存资源。
[0009]在一些实施例中,所述对所述会话消息进行实时判断,判断所述会话消息是否断开或过期之前,所述方法还包括:/>[0010]唤醒判断线程,打开所述判断线程的判断开关。
[0011]在一些实施例中,所述释放所述分桶中所述会话消息占据的内存资源,包括:
[0012]将所述会话消息从所述分桶移动到目标分桶,所述目标分桶为所5述分桶的下一个分桶;
[0013]删除所述会话消息和所述会话消息对应的临时节点,释放所述分桶中所述会话消息占据的内存资源。
[0014]在一些实施例中,所述方法还包括:
[0015]若所述会话消息未断开,则继续获取所述会话消息。
[0016]0在一些实施例中,释放所述分桶中所述会话消息占据的内存资源
[0017]之后,所述方法还包括:
[0018]确定所述分桶中是否有其他会话消息,所述其他会话消息为所述至少一个会话消息之外未被判断的会话消息;
[0019]基于所述分桶中没有其他会话消息,关闭所述判断线程的判断开5关。
[0020]在一些实施例中,关闭所述判断线程的判断开关之后,所述方法还包括:
[0021]释放所述判断线程占据的内存资源,控制所述判断线程进入等待状态。
[0022]0在一些实施例中,所述获取分桶的至少一个会话消息,包括:
[0023]获取服务器地址;
[0024]根据所述服务器地址创建所述分桶;
[0025]获取所述分桶的至少一个会话消息。
[0026]第二方面,本公开实施例提供一种会话消息的处理装置,包括:5获取模块,用于获取分桶的至少一个会话消息;
[0027]判断模块,用于针对所述至少一个会话消息中的每一个会话消息,对所述会话消息进行实时判断,判断所述会话消息是否断开或过期;
[0028]释放模块,用于若所述会话消息断开或过期,则释放所述分桶中所述会话消息占据的内存资源。
[0029]第三方面,本公开实施例提供一种电子设备,包括:
[0030]存储器;
[0031]处理器;以及
[0032]计算机程序;
[0033]其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现如第一方面所述的方法。
[0034]第四方面,本公开实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现第一方面所述的方法。
[0035]第五方面,本公开实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序或指令,该计算机程序或指令被处理器执行时实现第一方面所述的方法。
[0036]本公开实施例提供的会话消息的处理方法、装置、设备及计算机可读存储介质,通过获取分桶的至少一个会话消息;针对至少一个会话消息中的每一个会话消息,对该会话消息进行实时判断,判断该会话消息是否断开或过期,实时判断使得每个会话消息都可以得到及时判断;若所述会话消息断开或过期,则释放所述分桶中所述会话消息占据的内存资源,在会话断开或过期时将占据的内存资源实时释放,避免在分桶过期时间到达时对所有分桶内的会话进行统一判断而导致的负荷过大的问题,合理分配了内存资源,减少了资源浪费,对需要争抢内存资源且会话本身耗时少情况下,提高了终端的吞吐量,提高了用户体验。
附图说明
[0037]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
[0038]为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0039]图1为本公开实施例提供的会话消息的处理方法流程图;
[0040]图2为本公开实施例提供的一种应用场景的示意图;
[0041]图3为本公开另一实施例提供的会话消息的处理方法流程图;
[0042]图4为本公开实施例提供的会话消息的处理装置的结构示意图;
[0043]图5为本公开实施例提供的电子设备的结构示意图。
具体实施方式
[0044]为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
[0045]在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
[0046]分布式应用程序协调服务软件(ZooKeeper)对临时节点的会话管理采用分桶策略,即根据过期时间将时间划分为连续的时间段(每个时间段对应一个Zookeeper分桶),初始建立会话时将会话放入当前时间段所在的桶中,每个分桶的过期时间是绝对的,分桶中的所有会话需要在该分桶的过期时间到达前产生一次有效心跳,从而移动到下一个分桶中,如果在时间到达之前没有进入下一个分桶,那么Zookeeper会在过期时间到达时将该桶中的所有会话按照已过期会话处理,删除掉该分桶对应的临时节点。
[0047]但是,分桶只有在过期时间到达时才会判断会话是否过期,造成了会话过期未及时响应,导致服务延迟响应,造成了资源浪费。例如一个会话本身处理需要300ms,但是分桶的过期时间为5s,那么当使用Zookeeper为加锁媒介时,下一个会话本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种会话消息的处理方法,其特征在于,所述方法包括:获取分桶的至少一个会话消息;针对所述至少一个会话消息中的每一个会话消息,对所述会话消息进行实时判断,判断所述会话消息是否断开或过期;若所述会话消息断开或过期,则释放所述分桶中所述会话消息占据的内存资源。2.根据权利要求1所述的方法,其特征在于,所述对所述会话消息进行实时判断,判断所述会话消息是否断开或过期之前,所述方法还包括:唤醒判断线程,打开所述判断线程的判断开关。3.根据权利要求1所述的方法,其特征在于,所述释放所述分桶中所述会话消息占据的内存资源,包括:将所述会话消息从所述分桶移动到目标分桶,所述目标分桶为所述分桶的下一个分桶;删除所述会话消息和所述会话消息对应的临时节点,释放所述分桶中所述会话消息占据的内存资源。4.根据权利要求1所述的方法,其特征在于,所述方法还包括:若所述会话消息未断开,则继续获取所述会话消息。5.根据权利要求1所述的方法,其特征在于,释放所述分桶中所述会话消息占据的内存资源之后,所述方法还包括:确定所述分桶中是否有其他会话消息,所述其他会话消息为所述至少一个会话消息之外未被判断的会话消息;基于所述分桶中没有其他会话消息,关闭所...

【专利技术属性】
技术研发人员:李良斌
申请(专利权)人:北京声智科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1