CN107087232A - 用户的实时状态检测方法及系统 - Google Patents
用户的实时状态检测方法及系统 Download PDFInfo
- Publication number
- CN107087232A CN107087232A CN201710224168.4A CN201710224168A CN107087232A CN 107087232 A CN107087232 A CN 107087232A CN 201710224168 A CN201710224168 A CN 201710224168A CN 107087232 A CN107087232 A CN 107087232A
- Authority
- CN
- China
- Prior art keywords
- user
- message
- real
- heartbeat message
- heartbeat
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/442—Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
- H04N21/44213—Monitoring of end-user related data
- H04N21/44222—Analytics of user selections, e.g. selection of programs or purchase activity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/258—Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
- H04N21/25866—Management of end-user data
- H04N21/25891—Management of end-user data being end-user preferences
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Social Psychology (AREA)
- Computer Graphics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Debugging And Monitoring (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明适用于信息处理领域,提供了一种用户的实时状态检测方法及系统,包括:消息采集模块接收机顶盒模块发出的用户心跳消息,并将用户心跳消息存储至第一消息队列;第一处理模块以固定的第一时间间隔获取第一消息队列中的用户心跳消息,并将用户心跳消息从第一消息队列中移除;第一处理模块分别判断每条用户心跳消息在第一消息队列中的生存时间是否超过预设阈值;若否,则第一处理模块将该条用户心跳消息重新存储至第一消息队列中;若是,则第一处理模块在状态缓存中将该条用户心跳消息对应的用户的实时状态更新为离线状态。本发明提高了非关系型用户实时状态数据的读取效率,避免数据库读写压力过大的问题产生,降低了用户的离线状态检测难度。
Description
技术领域
本发明属于信息处理领域,尤其涉及一种用户的实时状态检测方法及系统。
背景技术
随着IPTV(Internet Protocol Television,网路协议电视)的广泛普及,IPTV的用户数量不断增加。为了更好地改善和提高IPTV的服务质量,为用户提供更有价值的服务,对于服务提供商而言,需要先对用户的行为数据进行采集和分析,从而能够对外提供大规模用户实时状态信息的查询功能。用户实时状态包括在线状态以及离线状态,其中,对用户实时状态的检测和分析又是行为数据分析过程中的一大重点和难点。
现有的IPTV用户实时状态检测系统主要用于把描述了用户实时状态的数据保存在传统的关系数据库中,即,通过直接对关系数据库执行读写操作,更新当前存储的用户实时状态的数据。然而,在这种处理方式中,数据库不但要负责大量实时存储用户消息的任务,还要负责大量的用户实时状态查询任务,因此会为数据库带来巨大的压力。
综上所述,现有用户的实时状态检测方法存在数据库读写压力过大的问题。
发明内容
本发明实施例提供一种用户的实时状态检测方法及系统,旨在解决现有的用户的实时状态检测方法中,存在数据库读写压力过大的问题。
本发明实施例是这样实现的,一种用户的实时状态检测方法,包括:
消息采集模块接收机顶盒模块发出的用户心跳消息,并将所述用户心跳消息存储至第一消息队列;
第一处理模块以固定的第一时间间隔获取所述第一消息队列中的所述用户心跳消息,并将所述用户心跳消息从所述第一消息队列中移除;
所述第一处理模块分别判断每条所述用户心跳消息在所述第一消息队列中的生存时间是否超过预设阈值;
当所述用户心跳消息在所述第一消息队列中的生存时间未超过预设阈值时,所述第一处理模块将该条用户心跳消息重新存储至所述第一消息队列;
当所述用户心跳消息在所述第一消息队列中的生存时间超过预设阈值时,所述第一处理模块在状态缓存中将该条用户心跳消息对应的用户的实时状态更新为离线状态,以在接收到关于所述用户的实时状态查询指令时,从所述状态缓存中检测出所述用户的实时状态。
本发明实施例的另一目的在于提供一种用户的实时状态检测系统,包括消息采集模块、机顶盒模块、第一处理模块、第一消息队列以及状态缓存,
所述消息采集模块用于接收机顶盒模块发出的用户心跳消息,并将所述用户心跳消息存储至第一消息队列;
所述第一处理模块用于以固定的第一时间间隔获取所述第一消息队列中的所述用户心跳消息,并将所述用户心跳消息从所述第一消息队列中移除;
所述第一处理模块还用于分别判断每条所述用户心跳消息在所述第一消息队列中的生存时间是否超过预设阈值;
当所述用户心跳消息在所述第一消息队列中的生存时间未超过预设阈值时,所述第一处理模块还用于将该条用户心跳消息重新存储至所述第一消息队列;
当所述用户心跳消息在所述第一消息队列中的生存时间超过预设阈值时,所述第一处理模块还用于在状态缓存中将该条用户心跳消息对应的用户的实时状态更新为离线状态,以在接收到关于所述用户的实时状态查询指令时,从所述状态缓存中检测出所述用户的实时状态。
本发明实施例中,通过在状态缓存中记录用户的实时状态,能够将读取和存储用户实时状态数据的压力从数据库转移至缓存中,使得管理员在查询某个用户的实时状态时,只需从缓存中读取数据,因此,提高了非关系型用户实时状态数据的读取效率,也避免了数据库读写压力过大的问题产生。基于各个模块来对实时状态数据进行处理,保证了所有数据都能够分布在一台服务器,故不会受到数据存储结构的限制,提高了对大批量数据的处理性能。通过单独对第一消息队列中的用户心跳消息进行处理,且第一消息队列中存储的用户心跳消息总量不断在调整,保证了在判断用户的实时状态时,无须每次都读取来源同一用户的所有心跳消息,且仅有在用户心跳消息超时时才将该用户的实时状态更新为离线状态,因而降低了用户的离线状态检测难度,由此也提高了系统的稳定性和可靠性。
附图说明
图1是本发明实施例提供的用户的实时状态检测方法所适用的系统架构图;
图2是本发明实施例提供的用户的实时状态检测方法的实现流程图;
图3是本发明另一实施例提供的用户的实时状态检测方法的实现流程图;
图4是本发明另一实施例提供的用户的实时状态检测方法所适用的系统架构图;
图5是本发明实施例提供的用户的实时状态检测方法S101的具体实现流程图;
图6是本发明实施例提供的用户的实时状态检测系统的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本发明实施例中,用户的实时状态包括在线状态以及离线状态,用户的实时状态数据包括用户的实时状态、用户当前观看的节目信息、用户当前观看的频道信息、观看时间以及用户的基本账号信息等与用户所使用的IPTV相关的所有数据,在此不作限定。
图1示出了本发明实施例提供的用户的实时状态检测方法所适用的系统架构图,为了便于说明,仅示出了与本实施例相关的部分。
参照图1,该系统由多个机顶盒模块11、消息采集模块12、第一消息队列13、第一处理模块14以及状态缓存15组成,其中,机顶盒模块11可位于IPTV机顶盒内部,用于根据预存储的策略,对当前用户正在收看的节目信息、频道信息和用户的基本信息进行采集及管理,并用于生成用户心跳消息,从而将获取得到的上述各类实时状态数据通过有线或无线网络发送至消息采集模块12,以告知消息采集模块12当前用户处于怎样的状态之中。
在该系统中,消息采集模块12用于接收机顶盒模块11发出的各类实时状态数据,并将其中的用户心跳消息暂存于第一消息队列13中,以使第一处理模块14能够从该第一消息队列13中读取出最新时刻的用户心跳消息,从而根据用户心跳消息的生存时间,判断出对应的哪些用户正处于在线状态或离线状态,并在状态缓存15中实现对用户实时状态的更新或修改。
图2示出了本发明实施例提供的用户的实时状态检测方法的实现流程,详述如下:
在S201中,消息采集模块接收机顶盒模块发出的用户心跳消息,并将所述用户心跳消息存储至第一消息队列。
本实施例中,机顶盒实现了将用户所使用的IPTV电视机与外部信号源相连,机顶盒模块位于IPTV机顶盒的内部。其中,用户可利用IPTV账号和密码,在机顶盒所提供的操作界面中执行登录,以获取与IPTV账号绑定的节目观看权限以及频道观看权限。当IPTV机顶盒开启后,机顶盒模块在预设的时间间隔到达时,生成用户心跳消息,例如,一分钟生成一次用户心跳消息,并将携带有IPTV账号的该条用户心跳信息发送至远程服务器内部的消息采集模块中;换句话说,当IPTV机顶盒关闭后,机顶盒模块将停止运行,由于此时无法生成用户心跳消息,因此,消息采集模块将不会接收到最新时刻下基于该IPTV账号的用户心跳消息。
此外,当IPTV机顶盒开启后,用户通过遥控器来选择自己所需的信号源、播放平台以及选择自己所需观看的频道、节目时,上述机顶盒模块能够检测出用户所选择的具体内容,并将该具体内容与其检测到的IPTV账号共同作为上述用户心跳消息中,从而发送至远程的消息采集模块。
特别地,仅在接收到切换指令,以改变当前所播放的节目或频道时,机顶盒模块才再次采集当前时刻的用户实时状态数据;或者,按照预设的时间间隔检测当前时刻的播放内容时,若播放频道或者播放节目未发生改变,则机顶盒模块无须再次采集当前时刻的用户实时状态数据。
本实施例中,消息采集模块将各个机顶盒模块发送过来的基于不同用户的用户心跳消息存储至预先建立的第一消息队列中。
在S202中,第一处理模块以固定的第一时间间隔获取所述第一消息队列中的所述用户心跳消息,并将所述用户心跳消息从所述第一消息队列中移除。
系统中的第一处理模块批量读取当前已累积存储于该队列中的各条用户心跳消息,即,将第一消息队列中的用户心跳消息转移至第一处理模块内部,且在第一消息队列中清空当前已被读取的每一条用户心跳消息。
由于消息采集模块会接收到不同时刻下不同机顶盒模块上传的用户心跳消息,因此,当第一消息队列中的用户心跳消息被清空后,也会再次累积有最新时刻下的各条用户心跳消息,故第一处理模块将会保持固定的时间间隔不断读取第一消息队列中最新的用户心跳消息。
例如,第一处理模块每隔2秒将执行一次用户心跳消息获取操作,则第一处理模块将会得到这2秒之内才存储于第一消息队列中的各条用户心跳消息。
在S203中,所述第一处理模块分别判断每条所述用户心跳消息在所述第一消息队列中的生存时间是否超过预设阈值。
本实施例中,某条用户心跳消息的生存时间是指该用户心跳消息进入第一消息队列中的时长,即存储时长。第一处理模块在读取用户心跳消息并将用户心跳消息从所述第一消息队列中移除之前,先分别获取每条用户心跳消息在第一消息队列中的生存时间。根据系统内部预设的时长阈值,第一处理模块能够识别出每一条用户心跳消息的生存时间是否超过了该时长阈值。
在S204中,当所述用户心跳消息在所述第一消息队列中的生存时间未超过预设阈值时,所述第一处理模块将该条用户心跳消息重新存储至所述第一消息队列。
对于某条用户心跳消息而言,当该用户心跳消息被第一处理模块读取并处理后,第一消息队列中已不再存储有该条用户心跳消息。此时,若经过分析得知该条用户心跳消息在第一消息队列中的生存时间未超过预设的阈值时长,则第一处理模块会再次在第一消息队列中写入该条用户心跳消息,且该条用户心跳消息的存储时刻保持与第一次进入第一消息队列时的存储时刻相同。将未超时的用户心跳消息再次进行存储,表示该条用户心跳消息所对应的用户依然处于在线状态。由此可知,存在于第一消息队列中各条用户心跳消息所对应的用户的实时状态都被判定为在线状态。
优选地,在S204中,当所述用户心跳消息在所述第一消息队列中的生存时间未超过预设阈值时,所述方法还包括:
所述第一处理模块将该条用户心跳消息中的实时收视信息存储至所述状态缓存中,以更新所述用户在所述状态缓存中对应的历史收视信息
本实施例中,状态缓存是数据交换的缓冲区,该缓冲区中存储了用户最新的实时状态数据,包含但不限于各个用户的实时状态、IPTV账号信息、用户收视对象以及用户心跳消息的接收时间等信息,这些信息都是用户实时状态检测系统最终所需要生成的缓存数据。
当基于生存时间来判断某条用户心跳消息所对应的用户仍处于在线状态时,由于用户心跳消息中携带有上述信号源、播放平台、收看频道以及收看节目等内容,因而除了将该其用户心跳消息再次写入第一消息队列,还会在状态缓存中更新该用户的历史收视信息,使得历史收视信息中的内容为用户心跳消息所携带的具体内容,以保证状态缓存能够具有最实时以及最准确的用户实时状态数据。
在S205中,当所述用户心跳消息在所述第一消息队列中的生存时间超过预设阈值时,所述第一处理模块在状态缓存中将该条用户心跳消息对应的用户的实时状态更新为离线状态,以在接收到关于所述用户的实时状态查询指令时,从所述状态缓存中检测出所述用户的实时状态。
当第一处理模块识别到某条用户心跳消息在第一消息队列中的生存时间超过了预设的时长阈值时,第一处理模块将会在状态缓存中找到该条用户心跳消息所对应的用户的实时状态记录,并将其更新为离线状态,用以表示已太长时间未接收到该用户的心跳信息,因而判定该用户已下线。
作为本发明的一个实施例,上述S205具体如下:
当所述用户心跳消息在所述第一消息队列中的生存时间超过预设阈值时,所述第一处理模块分别在状态缓存以及在收视对象数据库中将该条用户心跳消息对应的用户的实时状态更新为离线状态。
本发明实施例中,收视对象数据库为关系型数据库,用于存储每个用户的收视状态信息。其中,收视状态信息包括当前收看对象、收视开始时间以及用户的实时状态等信息,且收视对象具体为收看节目以及收看频道。收视对象数据库为其他外部系统提供了收视状态信息的汇总查询服务,使得其他系统能够调用该收视对象数据库中的具体数据,从而基于对该数据的分析来提供更好的IPTV服务。
例如,外部系统可在收视对象数据库中快速查询到当前正在收看A节目的所有用户名单,而无需再到上述状态缓存中轮询每个用户对应的历史收看节目后,再判断出收看A节目的所有用户有哪些。
当状态缓存中某个用户的实时状态更新为离线状态时,收视对象数据库中该用户的实时状态也一并更新为离线状态,用以确定用户的实时状态已发生了改变,因而需要实时记录至收视对象数据库中,同时也保持了状态缓存与收视对象数据库中实时状态数据的同步,避免出现两边信息不一致而导致数据混乱以及降低系统可靠性的问题。
特别地,当系统接收到关于某一用户的实时状态查询指令时,系统或者系统内部的第三处理模块将会从所述状态缓存中检测出该用户的实时状态,并将该实时状态返回至发出实时状态查询指令的请求用户。
本发明实施例中,通过在状态缓存中记录用户的实时状态,能够将读取和存储用户实时状态数据的压力从数据库转移至缓存中,使得管理员在查询某个用户的实时状态时,只需从缓存中读取数据,因此,提高了非关系型用户实时状态数据的读取效率,也避免了数据库读写压力过大的问题产生。基于各个模块来对实时状态数据进行处理,保证了所有数据都能够分布在一台服务器,故不会受到数据存储结构的限制,提高了对大批量数据的处理性能。通过单独对第一消息队列中的用户心跳消息进行处理,且第一消息队列中存储的用户心跳消息总量不断在调整,保证了在判断用户的实时状态时,无须每次都读取来源同一用户的所有心跳消息,且仅有在用户心跳消息超时时才将该用户的实时状态更新为离线状态,因而降低了用户的离线状态检测难度,由此也提高了系统的稳定性和可靠性。
作为本发明的另一实施例,图3示出了本发明实施例提供的用户的实时状态检测方法的实现流程,详述如下:
在S301中,消息采集模块接收机顶盒模块发出的用户心跳消息,并将所述用户心跳消息存储至第一消息队列以及第二消息队列,其中,所述用户心跳信息包括实时收视信息。
第二消息队列为系统中预先建立的除第一消息队列之外的另一个队列。基于上述S101中相同的实现原理,当消息采集模块采集到各个机顶盒模块发出的实时收视信息后,会将实时收视信息分发到第二消息队列中。
在S302中,第二处理模块以固定的第二时间间隔获取所述第二消息队列中的所述实时收视信息。
每条实时收视信息的属性中记录了该条信息的存储时刻。第二处理模块保持固定的时间间隔读取第二消息队列中的实时收视信息,在一次读取过程中,仅读取存储时刻与当前系统时间的差值在预设时长范围内的一条或多条实时收视信息。
例如,第二处理模块每隔2秒将执行一次实时收视信息的获取操作,则第二处理模块将会得到最近2秒内才存储于第二消息队列中的各条实时收视信息。
在S303中,所述第二处理模块在所述状态缓存中获取所述用户的所述历史收视信息,并判断所述历史收视信息与所述实时收视信息是否相同。
第二处理模块读取到第二消息队列中的各条最新的实时收视信息后,在状态缓存中获取每条实时收视信息所对应的用户的历史收视信息。第二处理模块将属于同一用户的两组数据进行比较,从而可以判断出最新时刻读取到的该用户的实时收视对象相对于较前时刻存储于状态缓存中的该用户的收视对象来说,在当前时刻之下是否发生了变化。
例如,状态缓存中用户A的历史收视信息中记录了其当前收看对象为节目a,而从第二消息队列中刚刚读取到的用户A的收看对象为节目b,可以得知,用户A的收视对象在当前时刻下发生了变化,即用户A的历史收视信息与实时收视信息不同。
在S304中,若所述历史收视信息与所述实时收视信息不同,则所述第二处理模块在收视对象数据库中将所述用户的当前收看对象更新为所述实时收视信息中的所述收看对象,并在所述状态缓存中将所述用户的所述历史收视信息更新为所述实时收视信息。
本实施例中,只有当缓存中的历史收视信息与实时收视信息有差别时,收视对象数据库中的用户实时状态数据才会被写入以及存储,而在历史收视信息与实时收视信息相同时,收视对象数据库无须执行数据写入操作。在大部分情况之下,用户在一段时间内会持续收看相同的一个节目,因此,第二处理模块即使在这段时间内持续接收与历史收视信息相同的某个用户的用户心跳消息,也不必每接收到一条该用户的用户心跳消息就执行一次收视对象更新操作,因而本发明实施例极大地减轻了数据库的运行压力,提高了实时状态数据的检测效率。
由于第二处理模块从第二消息队列中获取到的实时收视信息为用户传送至系统的最新信息,因此,基于该最新的实时收视信息来更新收视对象数据库以及状态缓存中的历史收视信息时,能够最大程度地记录存储用户当前时刻的真实收看状态,提高了系统中存储的用户实时状态数据的准确性。
图4示出了本发明另一实施例提供的用户的实时状态检测方法所适用的系统架构图,为了便于说明,仅示出了与本实施例相关的部分。
参照图4,该系统由多个机顶盒模块41、消息采集模块42、第一消息队列43、第二消息队列44、第一处理模块45、状态缓存46、第二处理模块47以及收视对象数据库48组成。其中,机顶盒模块41将采集到的用户心跳消息以及实时收视信息发送至远程的消息采集模块42,消息采集模块42将接收到的每条用户心跳信息分发至第一消息队列43以及将接收到的每条实时收视信息分发至第二消息队列44。
第一处理模块45以固定的时间间隔从第一消息队列43中读取出最新时刻的用户心跳消息,从而根据用户心跳消息的生存时间,判断出对应的哪些用户正处于离线状态,并在状态缓存46以及在收视对象数据库48中实现对用户实时状态的更新或修改;若某条用户心跳信息的生存时间尚未超时,则第一处理模块45将该条用户心跳信息重新写入第一消息队列43中,随着时间的推移,该用户心跳信息会达到时长阀值,从而判断用户已经离线,此时该用户心跳消息将不会再写入第一消息队列中。
第二处理模块47以固定的时间间隔从第二消息队列44中读取出最近的预设时长内的各条实时收视信息,并在状态缓存46中读取每条实时收视信息所对应的用户的历史收视信息,从而判断该用户的两条新旧信息是否相同,若不相同,则在状态缓存46以及收视对象数据库48中,将该用户的收视信息进行更新后存储。
本发明实施例将用户离线状态检测的过程与用户在线状态下实时收视信息的处理过程分发至第一处理模块以及第二处理模块来独立处理,并且两个模块所读取的数据信息来源于不同的消息队列,因此,避免了不同类型数据之间的相互影响,通过将实时状态数据的读写压力留在了状态缓存中,减轻了收视对象数据库的存储压力。
作为本发明的又一实施例,如图5所示,在所述消息采集模块接收机顶盒发出的用户心跳消息之后,在所述将所述用户心跳消息存储至第一消息队列中之前,所述方法还包括:
在S501中,所述消息采集模块判断所述第一消息队列中是否存在与所述用户心跳消息对应同一用户的另一条用户心跳消息。
在S502中,当所述第一消息队列中存在与所述用户心跳消息对应同一用户的另一条用户心跳消息时,所述消息采集模块将所述另一条用户心跳消息从所述第一消息队列中移除。
消息采集模块在持续不断接收到各个机顶盒模块上传的用户心跳消息时,在将刚接收到的某条用户心跳消息准备存入第一消息队列之前,第一消息队列之中已包含有之前时刻所存入的其他用户心跳消息。每条用户心跳消息标识了其对应的用户,因此,消息采集模块读取刚接收到的用户心跳消息所标识的用户后,能够判断当前第一消息队列中是否存在标识了相同用户的一条用户心跳消息,若是,则将其中已存储的该用户的用户心跳消息从第一消息队列中移除,保证即将存入第一消息队列中的用户心跳消息是该用户的最新一条用户心跳消息,从而在后续判断该用户是否离线时,能够基于其最新的用户心跳消息来获取生存时间以及获取最新的收视信息存入状态缓存,提高该用户实时状态的判断准确性。
应理解,在本发明实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
图6示出了本发明实施例提供的用户的实时状态检测装置的结构框图,该用于运行本发明图1至图5实施例所述的用户的实时状态检测方法。为了便于说明,仅示出了与本实施例相关的部分。
参照图6,该系统包括机顶盒模块61、消息采集模块62、第一消息队列63、第一处理模块64以及状态缓存65,
所述消息采集模块62用于接收机顶盒模块61发出的用户心跳消息,并将所述用户心跳消息存储至第一消息队列63。
所述第一处理模块64用于以固定的第一时间间隔获取所述第一消息队列63中的所述用户心跳消息,并将所述用户心跳消息从所述第一消息队列63中移除。
所述第一处理模块64还用于分别判断每条所述用户心跳消息在所述第一消息队列63中的生存时间是否超过预设阈值。
当所述用户心跳消息在所述第一消息队列63中的生存时间未超过预设阈值时,所述第一处理模块64还用于将该条用户心跳消息重新存储至所述第一消息队列63。
当所述用户心跳消息在所述第一消息队列63中的生存时间超过预设阈值时,所述第一处理模块64还用于在状态缓存65中将该条用户心跳消息对应的用户的实时状态更新为离线状态,以在接收到关于所述用户的实时状态查询指令时,从所述状态缓存65中检测出所述用户的实时状态。
可选地,所述系统还包括收视对象数据库,当所述用户心跳消息在所述第一消息队列63中的生存时间超过预设阈值时,所述第一处理模块64具体用于分别在状态缓存65以及在收视对象数据库中将该条用户心跳消息对应的用户的实时状态更新为离线状态。
可选地,当所述用户心跳消息在所述第一消息队列63中的生存时间未超过预设阈值时,所述第一处理模块64还用于将该条用户心跳消息中的实时收视信息存储至所述状态缓存65中,以使所述实时收视信息作为所述用户在所述状态缓存65中对应的历史收视信息。
可选地,所述系统还包括第二消息队列以及第二处理模块,所述消息采集模块62还用于接收机顶盒模块发出的用户心跳消息,并将所述用户心跳消息存储至第一消息队列63以及第二消息队列,其中,所述用户心跳信息包括实时收视信息;
所述第二处理模块用于以固定的第二时间间隔获取所述第二消息队列中的所述实时收视信息;
所述第二处理模块还用于在所述状态缓存65中获取所述用户的所述历史收视信息,并判断所述历史收视信息与所述实时收视信息是否相同;
若所述历史收视信息与所述实时收视信息不同,则所述第二处理模块还用于在收视对象数据库中将所述用户的当前收看对象更新为所述实时收视信息中的所述收看对象,并在所述状态缓存65中将所述用户的所述历史收视信息更新为所述实时收视信息。
可选地,所述消息采集模块62还用于判断所述第一消息队列63中是否存在与所述用户心跳消息对应同一用户的另一条用户心跳消息。
当所述第一消息队列63中存在与所述用户心跳消息对应同一用户的另一条用户心跳消息时,所述消息采集模块62还用于将所述另一条用户心跳消息从所述第一消息队列63中移除。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种用户的实时状态检测方法,其特征在于,包括:
消息采集模块接收机顶盒模块发出的用户心跳消息,并将所述用户心跳消息存储至第一消息队列;
第一处理模块以固定的第一时间间隔获取所述第一消息队列中的所述用户心跳消息,并将所述用户心跳消息从所述第一消息队列中移除;
所述第一处理模块分别判断每条所述用户心跳消息在所述第一消息队列中的生存时间是否超过预设阈值;
当所述用户心跳消息在所述第一消息队列中的生存时间未超过预设阈值时,所述第一处理模块将该条用户心跳消息重新存储至所述第一消息队列;
当所述用户心跳消息在所述第一消息队列中的生存时间超过预设阈值时,所述第一处理模块在状态缓存中将该条用户心跳消息对应的用户的实时状态更新为离线状态,以在接收到关于所述用户的实时状态查询指令时,从所述状态缓存中检测出所述用户的实时状态。
2.如权利要求1所述的方法,其特征在于,所述当所述用户心跳消息在所述第一消息队列中的生存时间超过预设阈值时,所述第一处理模块在状态缓存中将该条用户心跳消息对应的用户的实时状态更新为离线状态,包括:
当所述用户心跳消息在所述第一消息队列中的生存时间超过预设阈值时,所述第一处理模块分别在状态缓存以及在收视对象数据库中将该条用户心跳消息对应的用户的实时状态更新为离线状态。
3.如权利要求1或2所述的方法,其特征在于,当所述用户心跳消息在所述第一消息队列中的生存时间未超过预设阈值时,所述方法还包括:
所述第一处理模块将该条用户心跳消息中的实时收视信息存储至所述状态缓存中,以更新所述用户在所述状态缓存中对应的历史收视信息。
4.如权利要求3所述的方法,其特征在于,所述消息采集模块接收机顶盒模块发出的用户心跳消息,并将所述用户心跳消息存储至第一消息队列包括:
消息采集模块接收机顶盒模块发出的用户心跳消息,并将所述用户心跳消息存储至第一消息队列以及第二消息队列,其中,所述用户心跳信息包括实时收视信息;
在所述将所述用户心跳消息存储至第二消息队列之后,所述方法还包括:
第二处理模块以固定的第二时间间隔获取所述第二消息队列中的所述实时收视信息;
所述第二处理模块在所述状态缓存中获取所述用户的所述历史收视信息,并判断所述历史收视信息与所述实时收视信息是否相同;
若所述历史收视信息与所述实时收视信息不同,则所述第二处理模块在收视对象数据库中将所述用户的当前收看对象更新为所述实时收视信息中的所述收看对象,并在所述状态缓存中将所述用户的所述历史收视信息更新为所述实时收视信息。
5.如权利要求1或2所述的方法,其特征在于,在所述消息采集模块接收机顶盒发出的用户心跳消息之后,在所述将所述用户心跳消息存储至第一消息队列之前,所述方法还包括:
所述消息采集模块判断所述第一消息队列中是否存在与所述用户心跳消息对应同一用户的另一条用户心跳消息;
当所述第一消息队列中存在与所述用户心跳消息对应同一用户的另一条用户心跳消息时,所述消息采集模块将所述另一条用户心跳消息从所述第一消息队列中移除。
6.一种用户的实时状态检测系统,其特征在于,消息采集模块、机顶盒模块、第一处理模块、第一消息队列以及状态缓存,
所述消息采集模块用于接收机顶盒模块发出的用户心跳消息,并将所述用户心跳消息存储至第一消息队列;
所述第一处理模块用于以固定的第一时间间隔获取所述第一消息队列中的所述用户心跳消息,并将所述用户心跳消息从所述第一消息队列中移除;
所述第一处理模块还用于分别判断每条所述用户心跳消息在所述第一消息队列中的生存时间是否超过预设阈值;
当所述用户心跳消息在所述第一消息队列中的生存时间未超过预设阈值时,所述第一处理模块还用于将该条用户心跳消息重新存储至所述第一消息队列;
当所述用户心跳消息在所述第一消息队列中的生存时间超过预设阈值时,所述第一处理模块还用于在状态缓存中将该条用户心跳消息对应的用户的实时状态更新为离线状态,以在接收到关于所述用户的实时状态查询指令时,从所述状态缓存中检测出所述用户的实时状态。
7.如权利要求6所述的系统,其特征在于,所述系统还包括收视对象数据库,当所述用户心跳消息在所述第一消息队列中的生存时间超过预设阈值时,所述第一处理模块具体用于分别在状态缓存以及在收视对象数据库中将该条用户心跳消息对应的用户的实时状态更新为离线状态。
8.如权利要求6或7所述的系统,其特征在于,所述当所述用户心跳消息在所述第一消息队列中的生存时间未超过预设阈值时,所述第一处理模块还用于将该条用户心跳消息中的实时收视信息存储至所述状态缓存中,以使所述实时收视信息作为所述用户在所述状态缓存中对应的历史收视信息。
9.如权利要求8所述的系统,其特征在于,所述系统还包括第二消息队列以及第二处理模块,所述消息采集模块还用于接收机顶盒模块发出的用户心跳消息,并将所述用户心跳消息存储至第一消息队列以及第二消息队列,其中,所述用户心跳信息包括实时收视信息;
所述第二处理模块用于以固定的第二时间间隔获取所述第二消息队列中的所述实时收视信息;
所述第二处理模块还用于在所述状态缓存中获取所述用户的所述历史收视信息,并判断所述历史收视信息与所述实时收视信息是否相同;
若所述历史收视信息与所述实时收视信息不同,则所述第二处理模块还用于在收视对象数据库中将所述用户的当前收看对象更新为所述实时收视信息中的所述收看对象,并在所述状态缓存中将所述用户的所述历史收视信息更新为所述实时收视信息。
10.如权利要求6或7所述的系统,其特征在于,所述消息采集模块还用于判断所述第一消息队列中是否存在与所述用户心跳消息对应同一用户的另一条用户心跳消息;
当所述第一消息队列中存在与所述用户心跳消息对应同一用户的另一条用户心跳消息时,所述消息采集模块还用于将所述另一条用户心跳消息从所述第一消息队列中移除。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710224168.4A CN107087232B (zh) | 2017-04-07 | 2017-04-07 | 用户的实时状态检测方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710224168.4A CN107087232B (zh) | 2017-04-07 | 2017-04-07 | 用户的实时状态检测方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107087232A true CN107087232A (zh) | 2017-08-22 |
CN107087232B CN107087232B (zh) | 2020-03-27 |
Family
ID=59615029
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710224168.4A Active CN107087232B (zh) | 2017-04-07 | 2017-04-07 | 用户的实时状态检测方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107087232B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110808874A (zh) * | 2019-10-25 | 2020-02-18 | 北京大米科技有限公司 | 一种跨机房服务监控方法、装置、存储介质及服务器 |
CN111405331A (zh) * | 2020-03-27 | 2020-07-10 | 海信视像科技股份有限公司 | 一种蓝牙Mesh设备状态更新方法及显示设备 |
CN113360783A (zh) * | 2021-06-21 | 2021-09-07 | 上海哔哩哔哩科技有限公司 | 用户在线列表更新方法、装置及计算机设备 |
CN117076874A (zh) * | 2023-10-17 | 2023-11-17 | 广东鹰视能效科技有限公司 | 一种批量仪表缺数诊断方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080082142A1 (en) * | 2006-09-28 | 2008-04-03 | Clark Andrew C | Technique for automatically configuring a communication network element |
CN102739720A (zh) * | 2011-04-14 | 2012-10-17 | 中兴通讯股份有限公司 | 分布式缓存服务器系统及其应用方法、缓存客户端、缓存服务端 |
CN104933132A (zh) * | 2015-06-12 | 2015-09-23 | 广州巨杉软件开发有限公司 | 基于操作序列号的分布式数据库有权重选举方法 |
CN105933199A (zh) * | 2016-04-08 | 2016-09-07 | 武汉斗鱼网络科技有限公司 | 一种保持心跳连接的方法与网关及聊天服务器 |
-
2017
- 2017-04-07 CN CN201710224168.4A patent/CN107087232B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080082142A1 (en) * | 2006-09-28 | 2008-04-03 | Clark Andrew C | Technique for automatically configuring a communication network element |
CN102739720A (zh) * | 2011-04-14 | 2012-10-17 | 中兴通讯股份有限公司 | 分布式缓存服务器系统及其应用方法、缓存客户端、缓存服务端 |
CN104933132A (zh) * | 2015-06-12 | 2015-09-23 | 广州巨杉软件开发有限公司 | 基于操作序列号的分布式数据库有权重选举方法 |
CN105933199A (zh) * | 2016-04-08 | 2016-09-07 | 武汉斗鱼网络科技有限公司 | 一种保持心跳连接的方法与网关及聊天服务器 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110808874A (zh) * | 2019-10-25 | 2020-02-18 | 北京大米科技有限公司 | 一种跨机房服务监控方法、装置、存储介质及服务器 |
CN111405331A (zh) * | 2020-03-27 | 2020-07-10 | 海信视像科技股份有限公司 | 一种蓝牙Mesh设备状态更新方法及显示设备 |
CN113360783A (zh) * | 2021-06-21 | 2021-09-07 | 上海哔哩哔哩科技有限公司 | 用户在线列表更新方法、装置及计算机设备 |
CN113360783B (zh) * | 2021-06-21 | 2023-03-14 | 上海哔哩哔哩科技有限公司 | 用户在线列表更新方法、装置及计算机设备 |
CN117076874A (zh) * | 2023-10-17 | 2023-11-17 | 广东鹰视能效科技有限公司 | 一种批量仪表缺数诊断方法及系统 |
CN117076874B (zh) * | 2023-10-17 | 2023-12-26 | 广东鹰视能效科技有限公司 | 一种批量仪表缺数诊断方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN107087232B (zh) | 2020-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107087232A (zh) | 用户的实时状态检测方法及系统 | |
CN101751032B (zh) | 自动控制系统的管理方法及系统、视频监控系统 | |
CN105306860B (zh) | 一种录像数据存储方法及装置 | |
CN107249140B (zh) | 榜单信息获取方法及其装置 | |
CA2878961C (en) | Systems and methods for projecting viewership data | |
CN106888381B (zh) | 一种数据资源存储方法及装置 | |
CN107690081B (zh) | 视频播放方法和装置以及存储介质、电子装置 | |
CN108399186A (zh) | 一种数据采集方法及装置 | |
CN105450964B (zh) | 对录像数据进行云存储的方法、系统及管理节点 | |
CN105490869A (zh) | 一种监控数据获取方法、装置和系统 | |
CN102360362A (zh) | 坐席录屏方法、质检方法及相关设备 | |
CN106797327A (zh) | 使用与自适应比特率流传输相关联的消息执行对移动平台的媒体监视 | |
CN104581388A (zh) | 播放状态的处理方法、装置及系统 | |
CN109345312A (zh) | 基于语音交互和人脸识别分类投放广告的方法及系统 | |
CN107370809A (zh) | 数据同步方法及数据搜索系统 | |
CN104699682B (zh) | 信息处理方法和装置 | |
CN107277624B (zh) | 时长计算方法及其装置 | |
CN112579820B (zh) | 时间跳变的录像数据处理方法、装置、介质及电子设备 | |
US10033930B2 (en) | Method of reducing a video file size for surveillance | |
CN109767268A (zh) | 一种广告推送方法、装置、存储介质及计算机设备 | |
CN103761194B (zh) | 一种内存管理方法及装置 | |
CN108282638A (zh) | 一种司称防损追溯系统 | |
CN106570068B (zh) | 信息推荐方法及装置 | |
KR102492022B1 (ko) | 다중 채널 네트워크의 컨텐츠 관리 방법, 장치 및 시스템 | |
CN100559487C (zh) | 管理记录设备的记录容量的方法和系统 |
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 | ||
CB02 | Change of applicant information |
Address after: 518000 Guangdong city of Shenzhen province Nanshan District Guangdong streets Gao Xin Road No. 016 three storey building on the east side of Lenovo Applicant after: Excellent network Co., Ltd. Address before: 518000 Guangdong city of Shenzhen province Nanshan District Guangdong streets Gao Xin Road No. 016 three storey building on the east side of Lenovo Applicant before: UT Starcom (Shenzhen) Technology Co., Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |