CN108243088A - 一种管理通讯信息的方法和装置 - Google Patents

一种管理通讯信息的方法和装置 Download PDF

Info

Publication number
CN108243088A
CN108243088A CN201611220442.2A CN201611220442A CN108243088A CN 108243088 A CN108243088 A CN 108243088A CN 201611220442 A CN201611220442 A CN 201611220442A CN 108243088 A CN108243088 A CN 108243088A
Authority
CN
China
Prior art keywords
communication information
information
queue
terminal
threshold value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201611220442.2A
Other languages
English (en)
Inventor
李淼
石鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Cloud In Faith Network Technology Co Ltd
Original Assignee
Beijing Cloud In Faith Network Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Cloud In Faith Network Technology Co Ltd filed Critical Beijing Cloud In Faith Network Technology Co Ltd
Priority to CN201611220442.2A priority Critical patent/CN108243088A/zh
Publication of CN108243088A publication Critical patent/CN108243088A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/07User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
    • H04L51/10Multimedia information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/216Handling conversation history, e.g. grouping of messages in sessions or threads
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23113Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving housekeeping operations for stored content, e.g. prioritizing content for deletion because of storage space restrictions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2405Monitoring of the internal components or processes of the server, e.g. server load
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4335Housekeeping operations, e.g. prioritizing content for deletion because of storage space restrictions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • H04N21/4435Memory management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/4788Supplemental services, e.g. displaying phone caller identification, shopping application communicating with other users, e.g. chatting

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本发明公开了一种管理通讯信息的方法和装置,属于计算机技术领域。所述方法包括:接收第一终端发送的目标直播间的通讯信息;如果所述目标直播间对应的通讯信息队列中当前存储的通讯信息的数目达到预设数目阈值,则在所述通讯信息队列当前存储的通讯信息中,删除发布时间最早的通讯信息;将接收到的通讯信息存储到所述通讯信息队列中。采用本发明,可以减少对处理资源的占用。

Description

一种管理通讯信息的方法和装置
技术领域
本发明涉及计算机技术领域,特别涉及一种管理通讯信息的方法和装置。
背景技术
随着互联网技术和视频技术的发展,网络直播随之得到了飞速的发展。网络直播的直播间一般具有聊天室的功能,用户(主播或观众)可以在直播间中发布通讯信息,即聊天信息,直播间中的其它用户则可以在直播间的聊天栏中看到该通讯信息。
在网络直播过程中,服务器会接收到大量的终端上传的通讯信息,并对通讯信息进行存储。同时,服务器会采取一定的机制通知终端向服务器拉取通讯信息。另外,对于存储的通讯信息,服务器会设置相应的删除机制。具体的,服务器会预先设置一个过期时长,每当接收到终端发送的信息拉取请求时,服务器可以在所有通讯信息中查询发布时长超过过期时长的通讯信息,将其删除。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
服务器每秒钟都会接收到大量的终端发送的信息拉取请求,而且服务器存储的通讯信息的数量也非常庞大,所以,采用上述的通讯信息的管理方式,会占用大量的处理资源。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种管理通讯信息的方法和装置。所述技术方案如下:
第一方面,提供了一种管理通讯信息的方法,所述方法包括:
接收第一终端发送的目标直播间的通讯信息;
如果所述目标直播间对应的通讯信息队列中当前存储的通讯信息的数目达到预设数目阈值,则在所述通讯信息队列当前存储的通讯信息中,删除发布时间最早的通讯信息;
将接收到的通讯信息存储到所述通讯信息队列中。
可选的,所述如果所述目标直播间对应的通讯信息队列中当前存储的通讯信息的数目达到预设数目阈值,则在所述通讯信息队列当前存储的通讯信息中,删除发布时间最早的通讯信息,包括:
如果所述目标直播间对应的通讯信息队列中当前存储的通讯信息的数目达到预设数目阈值,则在所述通讯信息队列当前存储的通讯信息中,对发布时间最早的通讯信息添加写锁;
将所述发布时间最早的通讯信息删除,并在删除后取消所述写锁。
这样,可以防止内存溢出。
可选的,所述方法还包括:
接收第二终端发送的所述目标直播间的信息拉取请求,所述信息拉取请求中携带有时间戳;
在所述通讯信息队列当前存储的通讯信息中,获取发布时间在所述时间戳之后的通讯信息;
将获取的通讯信息发送给所述第二终端。
这样,可以减少信息拉取请求的接收量。
可选的,所述方法还包括:
按照预设的通知周期,向所述目标直播间中账户所登录的终端,逐个发送信息拉取通知,其中,所述信息拉取通知,用于触发所述终端在接收到信息拉取通知后向服务器发送信息拉取请求。
这样,可以减少信息拉取通知的发送量。
可选的,所述方法还包括:
每次接收信息拉取请求后向终端发送通讯信息时,记录本次发送的通讯信息的数目;
当连续N次向终端发送的通讯信息的数目都等于所述预设数目阈值时,将所述预设数目阈值增大预设调整值;
当连续N次向终端发送的通讯信息的数目与所述预设数目阈值的差值都大于预设差值阈值时,将所述预设数目阈值减小预设调整值;
其中,N为预设正整数。
这样,可以在防止终端漏接通讯信息的同时减小服务器存储资源的占用。
可选的,所述通讯信息队列为ConcurrentSkipListMap数据结构的通讯信息队列。
这样,可以提高处理速度。
第二方面,提供了一种管理通讯信息的装置,所述装置包括:
接收模块,用于接收第一终端发送的目标直播间的通讯信息;
删除模块,用于如果所述目标直播间对应的通讯信息队列中当前存储的通讯信息的数目达到预设数目阈值,则在所述通讯信息队列当前存储的通讯信息中,删除发布时间最早的通讯信息;
存储模块,用于将接收到的通讯信息存储到所述通讯信息队列中。
可选的,所述删除模块,用于:
如果所述目标直播间对应的通讯信息队列中当前存储的通讯信息的数目达到预设数目阈值,则在所述通讯信息队列当前存储的通讯信息中,对发布时间最早的通讯信息添加写锁;
将所述发布时间最早的通讯信息删除,并在删除后取消所述写锁。
可选的,所述装置还包括:
接收模块,用于接收第二终端发送的所述目标直播间的信息拉取请求,所述信息拉取请求中携带有时间戳;
获取模块,用于在所述通讯信息队列当前存储的通讯信息中,获取发布时间在所述时间戳之后的通讯信息;
发送模块,用于将获取的通讯信息发送给所述第二终端。
可选的,所述发送模块,还用于:
按照预设的通知周期,向所述目标直播间中账户所登录的终端,逐个发送信息拉取通知,其中,所述信息拉取通知,用于触发所述终端在接收到信息拉取通知后向服务器发送信息拉取请求。
可选的,所述装置还包括调整模块,用于:
每次接收信息拉取请求后向终端发送通讯信息时,记录本次发送的通讯信息的数目;
当连续N次向终端发送的通讯信息的数目都等于所述预设数目阈值时,将所述预设数目阈值增大预设调整值;
当连续N次向终端发送的通讯信息的数目与所述预设数目阈值的差值都大于预设差值阈值时,将所述预设数目阈值减小预设调整值;
其中,N为预设正整数。
可选的,所述通讯信息队列为ConcurrentSkipListMap数据结构的通讯信息队列。
本发明实施例提供的技术方案带来的有益效果是:
本发明实施例中,接收第一终端发送的目标直播间的通讯信息,如果目标直播间对应的通讯信息队列中当前存储的通讯信息的数目达到预设数目阈值,则在通讯信息队列当前存储的通讯信息中,删除发布时间最早的通讯信息,将接收到的通讯信息存储到通讯信息队列中。这样,因为,通讯信息的接收量远小于信息拉取请求的接收量,而且,服务器无需每次接收到信息拉取请求都对所有通讯信息进行超时判断,而只需要在接收到通讯信息时删除通讯信息队列中最早发布的通讯信息,从而,可以减少对处理资源的占用。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种系统框架示意图;
图2是本发明实施例提供的一种管理通讯信息的方法的流程示意图;
图3是本发明实施例提供的一种对通讯信息队列进行操作的示意图;
图4是本发明实施例提供的一种管理通讯信息的方法的流程示意图;
图5是本发明实施例提供的一种管理通讯信息的方法的流程示意图;
图6是本发明实施例提供的一种管理通讯信息的装置的结构示意图;
图7是本发明实施例提供的一种服务器的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例提供了一种管理通讯信息的方法,该方法可以由服务器实现。其中,该服务器可以是网络直播网站或网络直播应用程序的后台服务器,服务器可以维护大量直播间的运营。在运营过程中,服务器会接收到每个直播间中账户发布的大量的通讯信息(即聊天信息)。同时,服务器会基于本发明实施例中提供的管理机制,对通讯信息进行存储或删除的操作。相应的系统框架图可以如图1所示。
服务器可以包括处理器、存储器、收发器等部件。处理器,可以为CPU(CentralProcessing Unit,中央处理单元)等,可以用于将通讯信息添加到通讯信息队列,对通讯信息队列中的通讯信息进行删除,等处理。存储器,可以为RAM(Random Access Memory,随机存取存储器),Flash(闪存)等,可以用于存储接收到的数据、处理过程所需的数据、处理过程中生成的数据等,如通讯信息、预设数目阈值等。收发器,可以用于与终端或其它服务器(如定位服务器)进行数据传输,例如,接收终端发送的通讯信息,向终端发送通讯信息,向终端发送信息拉取通知,接收终端发送的信息拉取请求,收发器可以包括天线、匹配电路、调制解调器等。
如图2所示,该方法的处理流程可以包括如下的步骤:
步骤201,接收第一终端发送的目标直播间的通讯信息。
在实施中,某主播的直播间(即目标直播间)开播以后,会有很多观众加入目标直播间。进入目标直播间的观众,可以在目标直播间中发布通讯信息,即聊天信息。在发表通讯信息时,目标直播间的观众可以在网络直播应用程序的聊天栏的输入框中,输入通讯信息,再点击发送按键,则可以触发终端(即第一终端)生成发布消息,发布消息中可以包括通讯信息、该终端当前登录的账户的账户标识、目标直播间的标识等信息,然后终端可以向服务器发送该发布消息。服务器接收到发布消息后可以对获取其中携带的账户标识、目标直播间的标识和通讯信息。
对于通讯信息发布的处理后续再做详细说明,下面先对通讯信息存储的过程进行说明。
步骤202,如果目标直播间对应的通讯信息队列中当前存储的通讯信息的数目达到预设数目阈值,则在通讯信息队列当前存储的通讯信息中,删除发布时间最早的通讯信息。
其中,所述通讯信息队列是用于缓存待发送的通讯信息的队列。通讯信息队列为ConcurrentSkipListMap(一种数据结构的名称)数据结构或TreeMap(一种数据结构的名称)数据结构的通讯信息队列,优选为ConcurrentSkipListMap数据结构的通讯信息队列。ConcurrentSkipListMap数据结构基于跳表实现,具有线程安全、高性能等优点。
在实施中,在目标直播间建立以后,服务器可以为目标直播间分配一定的缓存空间,并在缓存空间中建立通讯信息队列,用于对接收到的通讯信息进行缓存。同时,技术人员可以在服务器为该通讯信息队列设置一个预设数目阈值,使该通讯信息队列中通讯信息的数目不会超过该阈值。在建立通讯信息队列后,服务器接收到目标直播间的通讯信息则可以将通讯信息添加到通讯信息队列的尾部。这样,通讯信息队列中的通讯信息就按照发布时间排列,发布时间越早的通讯信息排位越靠近队列的首部,如图3所示。通讯信息队列中的通讯信息的数目会逐渐增长,直至达到预设数目阈值(如50)。服务器每接收到目标直播间的通讯信息时,都可以判断目标直播间的通讯信息队列中通讯信息的数目是否达到预设数目阈值。如果达到了预设数目阈值,则可以将通讯信息队列的首部的通讯信息删除,该通讯信息即为通讯信息队列中发布时间最早的通讯信息。如果未达到预设数目阈值,则可以不做删除处理。上述预设阈值的设置可以基于降低缓存空间占用量和减少用户漏收通讯信息进行综合考虑。
可选的,在删除通讯信息的过程中,可以为删除的通讯信息添加写锁,相应的,步骤202的处理可以如下:如果目标直播间对应的通讯信息队列中当前存储的通讯信息的数目达到预设数目阈值,则在通讯信息队列当前存储的通讯信息中,对发布时间最早的通讯信息添加写锁;将发布时间最早的通讯信息删除,并在删除后取消写锁。
在实施中,服务器如果判定通讯信息队列中当前存储的通讯信息的数目达到预设数目阈值,则可以先确定通讯信息队列中发布时间最早的通讯信息,即确定通讯信息队列的队首的通讯信息。然后服务器可以对该通讯信息添加写锁。写锁用于阻止其它线程对该通讯信息进行写操作,也就是说,只有对该通讯信息添加写锁的线程才可以对该通讯信息进行写操作,其它线程不允许对该通讯信息进行写操作,其中,写操作可以包括删除、修改等。添加写锁之后,可以将该通讯信息删除,并在删除后取消写锁。这样,可以防止出现以下情况:多个线程重复对同一通讯信息进行删除,而每个线程分别认为他们删除了一条通讯信息。这种情况下,多个线程应该需要分别删除多个通讯信息,可是实际操作中只删除了一条通讯信息,这样会导致通讯信息队列中通讯信息的数目越来越大,会导致内存溢出。而本实施例的处理可以杜绝这种情况的发生。
步骤203,将接收到的通讯信息存储到通讯信息队列中。
在实施中,完成上述删除操作之后,服务器可以将接收到的通讯信息添加到通讯信息队列的尾部。
本发明实施例中,上述处理流程给出了通讯信息的存储与删除的管理方式,下面介绍一下服务器向终端发送通讯信息的处理过程,如图4所示,可以包括如下步骤:
步骤401,接收第二终端发送的目标直播间的信息拉取请求,该信息拉取请求中携带有时间戳。
其中,第二终端是直播间中的任一终端。
在实施中,终端向服务器发送通讯信息时,会同时向服务器发送该通讯信息的发布时间,服务器在向其它终端发送该通讯信息时,也会同时发送相应的发布时间,终端对于接收到的直播间中的每条通讯信息,可以记录通讯信息的发布时间。
终端可以在检测到预设的触发事件后,可以在本地已接收到的目标直播间的通讯信息中,确定发布时间最早的通讯信息,并获取该通讯信息的发布时间,作为时间戳,生成携带该时间戳的信息拉取请求,发送给服务器。服务器接收到终端发送的目标直播间的信息拉取请求后,可以获取其中的时间戳。
步骤402,在通讯信息队列当前存储的通讯信息中,获取发布时间在时间戳之后的通讯信息。
在实施中,服务器可以在通讯信息队列中确定该时间戳对应的通讯信息,进而获取该通讯信息之后知道队列尾部的所有通讯信息。获取的这些通讯信息是第二终端之前没有拉取过的通讯信息。
步骤403,将获取的通讯信息发送给第二终端。
可选的,上述的触发事件可以是达到预设的拉取周期,或者也可以是接收到服务器发送的信息拉取通知,对于后一种情况,服务器需要按照一定的机制向终端发送信息拉取通知,相应的处理可以如下:按照预设的通知周期,向目标直播间中账户所登录的终端,逐个发送信息拉取通知,其中,信息拉取通知,用于触发终端在接收到信息拉取通知后向服务器发送信息拉取请求。
在实施中,服务器可以对每个直播间维护一个或多个通知账户队列,并按照如图5所示的方式进行通知处理,包括如下步骤:
步骤501,将目标直播间中的各账户添加到通知账户队列中。
其中,通知账户队列是服务器为直播间中的账户建立起的用于排队发送信息拉取通知的队列。服务器可以为每个直播间建立一个通知账户队列,也可以为每个直播间建立多个通知账户队列,例如,每个直播间的通知账户队列的数目可以与服务器的CPU数目相同。
在实施中,服务器维护通知账户队列的方式可以多种多样。例如,服务器可以将加入目标直播间的账户添加到通知账户队列中,并始终保持账户在通知账户队列中,直到账户离开直播间,或者,也可以仅当有新发布的通讯信息时,才将账户加入到通知账户队列中。在将账户加入通知账户队列时,加入顺序可以根据需求任意设置,例如,可以基于账户加入直播间的顺序,也可以是随机顺序等。
可选的,对于每个直播间有多个通知账户队列的情况,可以基于负载均衡的原则为直播间中的每个账户分配通知账户队列,相应的处理可以如下:根据预先存储的目标直播间中的账户与通知账户队列的对应关系,将目标直播间中的每个账户分别添加到对应的通知账户队列中。
在实施中,在目标直播间开播后,服务器可以为目标直播间建立多个通知账户队列,通知账户队列的数目可以与CPU数目相同。同时,服务器可以为每个通知账户队列分配编号,该编号可以为从0开始的非负整数。每当有账户加入目标直播间时,服务器可以根据预设的负载均衡处理方式为该账户分配对应的通知账户队列,将账户的标识与通知账户队列的编号对应的存储,建立起账户与通知账户队列的对应关系。负载均衡处理方式可以多种多样,例如,可以采用轮询的方式,或者,可以计算账户的标识的哈希值,对哈希值取绝对值,然后除以通知账户队列的数目,取余数,进而可以将编号为该余数的通知账户队列分配给该账户。
步骤502,按照预设的通知周期,以及通知账户队列中账户的排序,向通知账户队列中的账户所登录的终端,逐个发送信息拉取通知。
在实施中,技术人员可以预先设置一个通知周期,该通知周期即为前后两次发送信息拉取通知的时间间隔,该通知周期可以基于服务器的处理能力进行设置,处理能力较强的服务器可以设置较短的通知周期,处理能力较弱的服务器可以设置较长的通知周期。服务器可以按照账户在通知账户队列中的排序,没隔一个通知周期,向一个账户发送信息拉取通知,具体的,该信息拉取通知可以发送给账户所登录的终端。如果目标直播间有多个通知账户队列,对于每个通知账户队列,可以分别进行该处理过程。
可选的,可以仅当账户满足一定的条件时,才对其发送信息拉取通知,相应的,步骤502的处理可以如下:每当达到预设的通知周期时,根据通知账户队列中账户的排序,确定待通知的账户;如果待通知的账户满足任一通知条件,则向待通知的账户所登录的终端发送信息拉取通知。
其中,信息拉取通知,用于触发终端在接收到信息拉取通知后向服务器发送信息拉取请求。信息拉取请求,用于触发服务器在接收到信息拉取请求后向终端发送相应的通讯信息。
在实施中,每当达到预设的通知周期时,可以将通知账户队列的首部的账户,确定为待通知的账户。进而,可以判定该账户是否满足通知条件,如果满足任一通知条件,则可以向该账户所登录的终端发送信息拉取通知,如果不满足所有通知条件,则不向该账户所登录的终端发送信息拉取通知。
另外,对于上述处理情况,每确定一个待通知的账户后,将待通知的账户从通知账户队列中移除。具体的,可以在发送信息拉取通知或确定不发送信息拉取通知后,将待通知的账户从通知账户队列中移除。移除后,在通知账户队列中,该账户后面的账户则会成为队列首部的账户。
另外,对于上述处理情况,步骤201的处理可以是:每当接收到一个通讯信息时,将目标直播间中未在通知账户队列中的账户,添加到通知账户队列的尾部。在实际运营过程中,服务器接收到第一条通讯信息后,将账户都加入到通知账户队列中,在逐个对账户进行通知的过程中,有可能又接到第二条通讯信息,而此时有可能一部分账户已经通知完毕,并从通知账户队列中移除,而还有一部分账户还未进行通知,还在通知账户队列中排队等待,此时,服务器因为接收到第二条通讯信息,所以回将不在通知账户队列中的账户再次加入通知账户队列,并置于队列尾部。这样,可以防止这些账户漏掉第二条通讯信息。
本实施例中,上述的通知条件可以包括:
条件一,上一次向待通知的账户所登录的终端发送信息拉取通知后,接收到待通知的账户所登录的终端发送的信息拉取请求。
条件二,在待通知的账户加入目标直播间后,未向待通知的账户所登录的终端发送过信息拉取通知。
条件三,上一次向待通知的账户所登录的终端发送信息拉取通知的时刻与当前时刻的时间差大于预设阈值(如1秒)。
在实施中,待通知的账户满足条件一,意味着服务器上一次向该账户发送信息拉取通知后,接收到了该账户回复的信息拉取请求。反之,如果上一次该账户没有向服务器回复信息拉取请求,而且该账户又不满足其它通知条件,服务器此次则不会向该账户发送信息拉取通知。待通知的账户满足条件二,意味着该账户为新加入目标直播间的账户。待通知的账户满足条件三,意味着虽然上一次服务器向该账户发送信息拉取通知后,该账户没有回复,但是,距离此次信息拉取通知已经经过了一段时间,可以考虑再次向其发送信息拉取通知,以防止该账户一直得不到通知。
可选的,通知条件还包括:条件四,待通知的账户处于离线状态。
在实施中,基于条件四,可以对离线状态的账户继续发送信息拉取通知,以确定其是否长期保持离线。
可选的,可以通过以下方式确定账户进入离线状态,并将长期保持离线的账户从直播间中移除,相应的处理可以如下:当按照预设心跳周期未接收到第一账户的心跳消息时,记录第一账户进入离线状态;当第一账户处于离线状态时,如果接收到第一账户所登录的终端发送信息拉取通知,则记录第一账户进入在线状态;当第一账户处于离线状态的时长达到预设时长阈值,或在第一账户进入离线状态后向第一账户所登录的终端连续发送信息拉取通知的次数达到预设次数阈值,且未接收到第一账户所登录的终端发送的信息拉取请求时,将第一账户从目标直播间中移除。
在实施中,终端登录网络直播应用程序或网络直播网站后,会按照预设的心跳周期,向服务器发送心跳消息,服务器对每个已登录账户,都会按照该心跳周期检测是否接收到账户的心跳消息,如果为接收到心跳消息,则记录账户进入离线状态,如果接收到心跳消息,则确定账户仍处于在线状态。对于离线状态的账户,基于上述条件四,服务器会正常向它发送信息拉取通知,如果连续发送信息拉取通知的次数达到预设次数阈值,或连续发送信息拉取通知的时长达到预设时长阈值,而且都没有接收到相应的回复,则确定该账户保持长期离线,将该账户从目标直播间中移除。如果在这过程中,服务器接收到该账户所登录的终端发送的信息拉取通知,则记录该账户进入在线状态。
本发明实施例中,还提供了一些处理机制,对上述处理中的一些参数进行调节,具体如下:
参数一,预设数目阈值,预设数目阈值如果过大,会占用大量存储资源,如果过小,可能会使得通讯信息删除速度过快,而导致终端漏掉了一些通讯信息。为了减少终端漏接通讯信息,并控制存储资源的占用,可以对预设数目阈值进行实时性的调节,相应的处理可以如下:每次接收信息拉取请求后向终端发送通讯信息时,记录本次发送的通讯信息的数目;当连续N次向终端发送的通讯信息的数目都等于上述预设数目阈值时,将预设数目阈值增大预设调整值;当连续N次向终端发送的通讯信息的数目与上述预设数目阈值的差值都大于预设差值阈值时,将预设数目阈值减小预设调整值;其中,N为预设正整数。
在实施中,服务器每次接收终端发送的携带有时间戳的信息拉取请求后,获取发布时间在此时间戳之后的通讯信息,发送给终端,同时,服务器可以记录获取的通讯信息的数目。
如果此数目等于预设数目阈值,则说明终端拉取了服务器缓存的所有通讯信息,也就是说通讯信息队列中的所有通讯信息都是终端没有拉取过的通讯信息。这种情况有两种可能:一种是,在目标直播间的所有通讯信息中,上述时间戳之后的下一条通讯信息,刚好是当前通讯信息队列中发布时间最早的通讯信息,这种情况,该终端不会漏接通讯信息;另一种是,在目标直播间的所有通讯信息中,上述时间戳之后的下一条通讯信息已经被删除,不在当前的通讯信息队列中,这种情况,该终端就会漏接至少一条通讯信息。
基于以上分析,如果连续多次向终端发送的通讯信息的数目都等于上述预设数目阈值,则说明现在很可能发生终端漏接通讯信息的问题,这时,可以将预设数目阈值调大一点,以减少终端漏接通讯信息的问题发生。
另外,如果服务器记录的上述获取的通讯信息的数目与预设数目阈值差很多,则说明通讯信息队列中缓存的通讯信息有点多,没必要缓存那么多。这时,如果连续多次向终端发送的通讯信息的数目与上述预设数目阈值的差值都大于预设差值阈值,则可以将预设数目阈值调小一点,以节约终端的存储资源。
参数一,通知周期,服务器可以基于负载情况对上述通知周期进行调节,相应的处理可以如下:当检测到处理器的占用率或内存的占用率大于第一预设阈值时,将通知周期,从第一周期值增大至第二周期值;当检测到处理器的占用率和内存的占用率都小于第二预设阈值时,将通知周期,从第二周期值减小至第一周期值,其中第二预设阈值小于第一预设阈值。
在实施中,第一周期值和第二周期值可以都是由技术人员原先设置。在初始状态下,服务器可以使用较短的第一周期值作为通知周期。当处理器或内存有一者出现负载过高时,服务器可以将通知周期设置为较长的第二周期值。这样,可以缓解处理器和存储器的压力。而后,在服务器基于较长的通知周期运行的过程中,当处理器和内存的负载都比较低时,可以将通知周期再设置为较短的第一周期值。这样,可以提高信息拉取通知的发送频率,防止终端漏掉通讯信息。
本发明实施例中,接收第一终端发送的目标直播间的通讯信息,如果目标直播间对应的通讯信息队列中当前存储的通讯信息的数目达到预设数目阈值,则在通讯信息队列当前存储的通讯信息中,删除发布时间最早的通讯信息,将接收到的通讯信息存储到通讯信息队列中。这样,因为,通讯信息的接收量远小于信息拉取请求的接收量,而且,服务器无需每次接收到信息拉取请求都对所有通讯信息进行超时判断,而只需要在接收到通讯信息时删除通讯信息队列中最早发布的通讯信息,从而,可以减少对处理资源的占用。
基于相同的技术构思,本发明实施例还提供了一种管理通讯信息的装置,该装置可以是上述实施例中的服务器,如图6所示,该装置包括:
接收模块610,用于接收第一终端发送的目标直播间的通讯信息;
删除模块620,用于如果所述目标直播间对应的通讯信息队列中当前存储的通讯信息的数目达到预设数目阈值,则在所述通讯信息队列当前存储的通讯信息中,删除发布时间最早的通讯信息;
存储模块630,用于将接收到的通讯信息存储到所述通讯信息队列中。
可选的,所述删除模块620,用于:
如果所述目标直播间对应的通讯信息队列中当前存储的通讯信息的数目达到预设数目阈值,则在所述通讯信息队列当前存储的通讯信息中,对发布时间最早的通讯信息添加写锁;
将所述发布时间最早的通讯信息删除,并在删除后取消所述写锁。
可选的,所述装置还包括:
接收模块,用于接收第二终端发送的所述目标直播间的信息拉取请求,所述信息拉取请求中携带有时间戳;
获取模块,用于在所述通讯信息队列当前存储的通讯信息中,获取发布时间在所述时间戳之后的通讯信息;
发送模块,用于将获取的通讯信息发送给所述第二终端。
可选的,所述发送模块,还用于:
按照预设的通知周期,向所述目标直播间中账户所登录的终端,逐个发送信息拉取通知,其中,所述信息拉取通知,用于触发所述终端在接收到信息拉取通知后向服务器发送信息拉取请求。
可选的,所述装置还包括调整模块,用于:
每次接收信息拉取请求后向终端发送通讯信息时,记录本次发送的通讯信息的数目;
当连续N次向终端发送的通讯信息的数目都等于所述预设数目阈值时,将所述预设数目阈值增大预设调整值;
当连续N次向终端发送的通讯信息的数目与所述预设数目阈值的差值都大于预设差值阈值时,将所述预设数目阈值减小预设调整值;
其中,N为预设正整数。
可选的,所述通讯信息队列为ConcurrentSkipListMap数据结构的通讯信息队列。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本发明实施例中,接收第一终端发送的目标直播间的通讯信息,如果目标直播间对应的通讯信息队列中当前存储的通讯信息的数目达到预设数目阈值,则在通讯信息队列当前存储的通讯信息中,删除发布时间最早的通讯信息,将接收到的通讯信息存储到通讯信息队列中。这样,因为,通讯信息的接收量远小于信息拉取请求的接收量,而且,服务器无需每次接收到信息拉取请求都对所有通讯信息进行超时判断,而只需要在接收到通讯信息时删除通讯信息队列中最早发布的通讯信息,从而,可以减少对处理资源的占用。
需要说明的是:上述实施例提供的管理通讯信息的装置在管理通讯信息时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的管理通讯信息的装置与管理通讯信息的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图7是本发明实施例提供的服务器的结构示意图。该服务器1900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processingunits,CPU)1922(例如,一个或一个以上处理器)和存储器1932,一个或一个以上存储应用程序1942或数据1944的存储介质1930(例如一个或一个以上海量存储设备)。其中,存储器1932和存储介质1930可以是短暂存储或持久存储。存储在存储介质1930的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1922可以设置为与存储介质1930通信,在服务器1900上执行存储介质1930中的一系列指令操作。
服务器1900还可以包括一个或一个以上电源1926,一个或一个以上有线或无线网络接口1950,一个或一个以上输入输出接口1958,一个或一个以上键盘1956,和/或,一个或一个以上操作系统1941,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
服务器1900可以包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
接收第一终端发送的目标直播间的通讯信息;
如果所述目标直播间对应的通讯信息队列中当前存储的通讯信息的数目达到预设数目阈值,则在所述通讯信息队列当前存储的通讯信息中,删除发布时间最早的通讯信息;
将接收到的通讯信息存储到所述通讯信息队列中。
可选的,所述如果所述目标直播间对应的通讯信息队列中当前存储的通讯信息的数目达到预设数目阈值,则在所述通讯信息队列当前存储的通讯信息中,删除发布时间最早的通讯信息,包括:
如果所述目标直播间对应的通讯信息队列中当前存储的通讯信息的数目达到预设数目阈值,则在所述通讯信息队列当前存储的通讯信息中,对发布时间最早的通讯信息添加写锁;
将所述发布时间最早的通讯信息删除,并在删除后取消所述写锁。
可选的,所述方法还包括:
接收第二终端发送的所述目标直播间的信息拉取请求,所述信息拉取请求中携带有时间戳;
在所述通讯信息队列当前存储的通讯信息中,获取发布时间在所述时间戳之后的通讯信息;
将获取的通讯信息发送给所述第二终端。
可选的,所述方法还包括:
按照预设的通知周期,向所述目标直播间中账户所登录的终端,逐个发送信息拉取通知,其中,所述信息拉取通知,用于触发所述终端在接收到信息拉取通知后向服务器发送信息拉取请求。
可选的,所述方法还包括:
每次接收信息拉取请求后向终端发送通讯信息时,记录本次发送的通讯信息的数目;
当连续N次向终端发送的通讯信息的数目都等于所述预设数目阈值时,将所述预设数目阈值增大预设调整值;
当连续N次向终端发送的通讯信息的数目与所述预设数目阈值的差值都大于预设差值阈值时,将所述预设数目阈值减小预设调整值;
其中,N为预设正整数。
可选的,所述通讯信息队列为ConcurrentSkipListMap数据结构的通讯信息队列。
本发明实施例中,接收第一终端发送的目标直播间的通讯信息,如果目标直播间对应的通讯信息队列中当前存储的通讯信息的数目达到预设数目阈值,则在通讯信息队列当前存储的通讯信息中,删除发布时间最早的通讯信息,将接收到的通讯信息存储到通讯信息队列中。这样,因为,通讯信息的接收量远小于信息拉取请求的接收量,而且,服务器无需每次接收到信息拉取请求都对所有通讯信息进行超时判断,而只需要在接收到通讯信息时删除通讯信息队列中最早发布的通讯信息,从而,可以减少对处理资源的占用。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种管理通讯信息的方法,其特征在于,所述方法包括:
接收第一终端发送的目标直播间的通讯信息;
如果所述目标直播间对应的通讯信息队列中当前存储的通讯信息的数目达到预设数目阈值,则在所述通讯信息队列当前存储的通讯信息中,删除发布时间最早的通讯信息;
将接收到的通讯信息存储到所述通讯信息队列中。
2.根据权利要求1所述的方法,其特征在于,所述如果所述目标直播间对应的通讯信息队列中当前存储的通讯信息的数目达到预设数目阈值,则在所述通讯信息队列当前存储的通讯信息中,删除发布时间最早的通讯信息,包括:
如果所述目标直播间对应的通讯信息队列中当前存储的通讯信息的数目达到预设数目阈值,则在所述通讯信息队列当前存储的通讯信息中,对发布时间最早的通讯信息添加写锁;
将所述发布时间最早的通讯信息删除,并在删除后取消所述写锁。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收第二终端发送的所述目标直播间的信息拉取请求,所述信息拉取请求中携带有时间戳;
在所述通讯信息队列当前存储的通讯信息中,获取发布时间在所述时间戳之后的通讯信息;
将获取的通讯信息发送给所述第二终端。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
按照预设的通知周期,向所述目标直播间中账户所登录的终端,逐个发送信息拉取通知,其中,所述信息拉取通知,用于触发所述终端在接收到信息拉取通知后向服务器发送信息拉取请求。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
每次接收信息拉取请求后向终端发送通讯信息时,记录本次发送的通讯信息的数目;
当连续N次向终端发送的通讯信息的数目都等于所述预设数目阈值时,将所述预设数目阈值增大预设调整值;
当连续N次向终端发送的通讯信息的数目与所述预设数目阈值的差值都大于预设差值阈值时,将所述预设数目阈值减小预设调整值;
其中,N为预设正整数。
6.一种管理通讯信息的装置,其特征在于,所述装置包括:
接收模块,用于接收第一终端发送的目标直播间的通讯信息;
删除模块,用于如果所述目标直播间对应的通讯信息队列中当前存储的通讯信息的数目达到预设数目阈值,则在所述通讯信息队列当前存储的通讯信息中,删除发布时间最早的通讯信息;
存储模块,用于将接收到的通讯信息存储到所述通讯信息队列中。
7.根据权利要求6所述的装置,其特征在于,所述删除模块,用于:
如果所述目标直播间对应的通讯信息队列中当前存储的通讯信息的数目达到预设数目阈值,则在所述通讯信息队列当前存储的通讯信息中,对发布时间最早的通讯信息添加写锁;
将所述发布时间最早的通讯信息删除,并在删除后取消所述写锁。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
接收模块,用于接收第二终端发送的所述目标直播间的信息拉取请求,所述信息拉取请求中携带有时间戳;
获取模块,用于在所述通讯信息队列当前存储的通讯信息中,获取发布时间在所述时间戳之后的通讯信息;
发送模块,用于将获取的通讯信息发送给所述第二终端。
9.根据权利要求8所述的装置,其特征在于,所述发送模块,还用于:
按照预设的通知周期,向所述目标直播间中账户所登录的终端,逐个发送信息拉取通知,其中,所述信息拉取通知,用于触发所述终端在接收到信息拉取通知后向服务器发送信息拉取请求。
10.根据权利要求8所述的装置,其特征在于,所述装置还包括调整模块,用于:
每次接收信息拉取请求后向终端发送通讯信息时,记录本次发送的通讯信息的数目;
当连续N次向终端发送的通讯信息的数目都等于所述预设数目阈值时,将所述预设数目阈值增大预设调整值;
当连续N次向终端发送的通讯信息的数目与所述预设数目阈值的差值都大于预设差值阈值时,将所述预设数目阈值减小预设调整值;
其中,N为预设正整数。
CN201611220442.2A 2016-12-26 2016-12-26 一种管理通讯信息的方法和装置 Pending CN108243088A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611220442.2A CN108243088A (zh) 2016-12-26 2016-12-26 一种管理通讯信息的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611220442.2A CN108243088A (zh) 2016-12-26 2016-12-26 一种管理通讯信息的方法和装置

Publications (1)

Publication Number Publication Date
CN108243088A true CN108243088A (zh) 2018-07-03

Family

ID=62701851

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611220442.2A Pending CN108243088A (zh) 2016-12-26 2016-12-26 一种管理通讯信息的方法和装置

Country Status (1)

Country Link
CN (1) CN108243088A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110351572A (zh) * 2019-07-10 2019-10-18 广州虎牙科技有限公司 直播间信息的更新方法、装置、设备及存储介质
CN110659271A (zh) * 2019-08-29 2020-01-07 福建天泉教育科技有限公司 一种数据删除的优化方法及终端
CN111083127A (zh) * 2019-12-05 2020-04-28 达闼科技成都有限公司 会话管理方法、电子设备及计算机可读存储介质
CN112445803A (zh) * 2020-12-09 2021-03-05 卡斯柯信号有限公司 一种动态列首和列尾的ip匹配方法和系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020131419A1 (en) * 2001-03-19 2002-09-19 Hiroaki Tamai Packet switch apparatus and multicasting method
CN102541683A (zh) * 2010-12-31 2012-07-04 北大方正集团有限公司 一种数据文件备份方法及装置
CN103516585A (zh) * 2012-06-29 2014-01-15 北京奇虎科技有限公司 一种实现消息优先级分发的方法及系统
CN104301203A (zh) * 2014-09-10 2015-01-21 腾讯科技(深圳)有限公司 一种消息推送方法和设备
CN104917813A (zh) * 2015-04-17 2015-09-16 小米科技有限责任公司 请求资源的方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020131419A1 (en) * 2001-03-19 2002-09-19 Hiroaki Tamai Packet switch apparatus and multicasting method
CN102541683A (zh) * 2010-12-31 2012-07-04 北大方正集团有限公司 一种数据文件备份方法及装置
CN103516585A (zh) * 2012-06-29 2014-01-15 北京奇虎科技有限公司 一种实现消息优先级分发的方法及系统
CN104301203A (zh) * 2014-09-10 2015-01-21 腾讯科技(深圳)有限公司 一种消息推送方法和设备
CN104917813A (zh) * 2015-04-17 2015-09-16 小米科技有限责任公司 请求资源的方法及装置

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110351572A (zh) * 2019-07-10 2019-10-18 广州虎牙科技有限公司 直播间信息的更新方法、装置、设备及存储介质
CN110351572B (zh) * 2019-07-10 2022-05-20 广州虎牙科技有限公司 直播间信息的更新方法、装置、设备及存储介质
CN110659271A (zh) * 2019-08-29 2020-01-07 福建天泉教育科技有限公司 一种数据删除的优化方法及终端
CN110659271B (zh) * 2019-08-29 2022-07-26 福建天泉教育科技有限公司 一种数据删除的优化方法及终端
CN111083127A (zh) * 2019-12-05 2020-04-28 达闼科技成都有限公司 会话管理方法、电子设备及计算机可读存储介质
CN111083127B (zh) * 2019-12-05 2021-11-09 达闼机器人有限公司 会话管理方法、电子设备及计算机可读存储介质
CN112445803A (zh) * 2020-12-09 2021-03-05 卡斯柯信号有限公司 一种动态列首和列尾的ip匹配方法和系统
CN112445803B (zh) * 2020-12-09 2022-08-16 卡斯柯信号有限公司 一种动态列首和列尾的ip匹配方法和系统

Similar Documents

Publication Publication Date Title
CN108243088A (zh) 一种管理通讯信息的方法和装置
CN1949774B (zh) 一种Web应用程序会话管理方法与装置
CN110198275B (zh) 一种流量控制方法、系统、服务器及存储介质
CN104618693B (zh) 一种基于云计算的监控视频在线处理任务管理方法及系统
US20220070304A1 (en) Information Reminding Method and Apparatus, and Electronic Terminal
US8930489B2 (en) Distributed rate limiting of handling requests
CN106488273B (zh) 一种传输直播视频的方法和装置
CN107483976A (zh) 直播管控方法、装置及电子设备
CN108073684A (zh) 一种数据处理方法、服务器及计算机可读存储介质
CN107241380B (zh) 用于基于时间调整的负载均衡的方法和设备
CN108064467A (zh) 无线游戏协议
CN110532067A (zh) 事件处理方法、装置、设备及存储介质
CN108123866B (zh) 消息传输方法及装置
CN110460534A (zh) 一种请求消息上报方法、装置、设备及存储介质
CN111277848A (zh) 直播间互动消息的处理方法、装置、电子设备及存储介质
Zhang et al. A cloud gaming system based on user-level virtualization and its resource scheduling
CN111625859A (zh) 一种资源的访问控制方法、装置、电子设备和存储介质
CN104376096B (zh) 基于缓冲区的异步更新的方法
CN108965066B (zh) 一种对传输路径进行探测的方法和装置
CN109542642A (zh) 一种前端任务处理的方法及装置
CN106131185A (zh) 一种视频数据的处理方法、装置及系统
CN107135088A (zh) 云计算系统中处理日志的方法和装置
CN109821235A (zh) 游戏录像方法、装置及服务器
CN109558231A (zh) 分布式任务调度方法及计算机设备
US9325639B2 (en) Hierarchical caching system for lossless network packet capture applications

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20180703