一种信息流数据的处理方法和装置制造方法及图纸

技术编号:12398287 阅读:98 留言:0更新日期:2015-11-26 03:58
本发明专利技术实施例提供了一种信息流数据的处理方法和装置,该方法包括:当接收到基于第一用户标识发起的一事件的处理请求时,按照所述处理请求处理所述事件,所述事件具有事件标识;查找订阅所述第一用户标识的信息的第二用户标识;所述第二用户标识具有关联的信息流列表;将所述事件标识写入所述信息流列表中;将所述信息流列表中事件标识对应的事件信息发送至所述第二用户标识对应的客户端。本发明专利技术实施例通过异步推送在延迟允许的时间范围内进行事件整合统一处理,降低了数据的并发执行数,大大减轻了服务器压力。

【技术实现步骤摘要】

本专利技术涉及计算机处理的
,特别是涉及一种信息流数据的处理方法和一种信息流数据的处理装置。
技术介绍
随着网络科技的发展,目前许多产品,例如,博客(Blog)、SNS(Social NetworkSite,社会性网络服务)、RSS (Really Simple Syndicat1n,简易信息聚合)等等,引入了用户关注功能,用户可以在应用中查看到关注对象的历史行为。在这些产品中,大多应用了应用到了 Feed(信息流)系统,通常需要通过推(push)模式或拉(pull)模式发布Feed(信息流)数据。在推(push)模式中,需要为每一个用户维护一张Feed(信息流)列表,当一个用户发生了特定行为(如发表一条短消息),系统会往关注他的用户(俗称“粉丝”)的Feed(信息流)列表中推送数据。推(push)模式模式虽然可以让用户快捷获取Feed(信息流)数据,但是,如果一个用户拥有大量的粉丝,这样他的每一个特定行为都会造成海量的推送请求,这样大大增加了服务器的压力,在推送请求的高峰时段,大量的推送请求与别的业务和服务争抢公用资源(即“羊群效应”),发生不可预估的情况。在拉(pull)模式中,当一个用户发生了特定行为(如发表一条短消息)时,会将其存储到一个临时的Feed (信息流)列表中(只保存近期可接受范围的数据),用户在登陆时根据自身需要从Feed(信息流)列表拉取Feed(信息流)数据。拉(pull)模式虽然设计简单,节省存储空间,但是,Feed(信息流)列表一般需要保存最近十天或者半个月的Feed (信息流)数据,会产生很大的压力,如果用户关注了大量的对象,数据库的压力就会非常大会,影响拉取数据时的效率问题,而且一般在线的用户,客户端都会定期扫描,又会增加很大的压力,可能造成请求延迟或失败的现象发生。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的一种信息流数据的处理方法和相应的一种信息流数据的处理装置。依据本专利技术的一个方面,提供了一种信息流数据的处理方法,包括:当接收到基于第一用户标识发起的一事件的处理请求时,按照所述处理请求处理所述事件,所述事件具有事件标识;查找订阅所述第一用户标识的信息的第二用户标识;所述第二用户标识具有关联的信息流列表;将所述事件标识写入所述信息流列表中;将所述信息流列表中事件标识对应的事件信息发送至所述第二用户标识对应的客户端。可选地,所述按照所述处理请求处理所述事件的步骤包括:将所述事件的事件信息存储到数据库中。可选地,所述查找订阅所述第一用户标识的信息的第二用户标识的步骤包括:生成事件任务;所述事件任务包括第一用户标识、事件标识;将所述事件任务写入预置的任务队列中;由预置的守护进程从所述任务队列中读取所述事件任务;由预置的守护进程查找订阅所述第一用户标识的信息的第二用户标识。 可选地,所述事件任务还包括事件类型;所述将所述事件任务写入预置的任务队列中的步骤包括:将所述事件任务写入与所述事件类型匹配的、预置的任务队列中。可选地,所述由预置的守护进程从所述任务队列中读取所述事件任务的步骤包括:由预置的守护进程按照对所述事件类型设定的读取频率,从所述任务队列中按照先进先出的方式读取所述事件任务。可选地,所述事件类型具有优先级,第一事件类型的读取频率,高于,第二事件类型的读取频率;其中,第一事件类型为优先级高于第二事件类型的事件类型;第二事件类型为优先级低于第一事件类型的事件类型。可选地,所述事件任务还包括事件类型;所述由所述守护进程查找订阅所述第一用户标识的信息的第二用户标识的步骤包括:当所述事件类型为发布型时,由所述守护进程查找订阅所述第一用户标识的信息的第二用户标识。可选地,所述将所述事件标识写入所述信息流列表中的步骤包括:由预置的守护进程将所述事件标识写入存储在Redis数据库中的信息流列表。可选地,所述将所述信息流列表中事件标识对应的事件信息发送至所述第二用户标识对应的客户端的步骤包括:当所述第二用户标识关联在线状态时,按照所述信息流列表中事件标识的时间顺序,将所述事件标识对应的事件信息发送至所述第二用户标识对应的客户端。根据本专利技术的另一方面,提供了一种信息流数据的处理装置,包括:事件处理模块,适于在接收到基于第一用户标识发起的一事件的处理请求时,按照所述处理请求处理所述事件,所述事件具有事件标识;用户标识查找模块,适于查找订阅所述第一用户标识的信息的第二用户标识;所述第二用户标识具有信息流列表;信息流列表写模块,适于将所述事件标识写入所述信息流列表中;事件信息发送模块,适于将所述信息流列表中事件标识对应的事件信息发送至所述第二用户标识对应的客户端。 可选地,所述事件处理模块还适于:将所述事件的事件信息存储到数据库中。可选地,所述用户标识查找模块还适于:生成事件任务;所述事件任务包括第一用户标识、事件标识;将所述事件任务写入预置的任务队列中;由预置的守护进程从所述任务队列中读取所述事件任务;由预置的守护进程查找订阅所述第一用户标识的信息的第二用户标识。可选地,所述事件任务还包括事件类型;所述用户标识查找模块还适于:将所述事件任务写入与所述事件类型匹配的、预置的任务队列中。可选地,所述用户标识查找模块还适于:由预置的守护进程按照对所述事件类型设定的读取频率,从所述任务队列中按照先进先出的方式读取所述事件任务。可选地,所述事件类型具有优先级,第一事件类型的读取频率,高于,第二事件类型的读取频率;其中,第一事件类型为优先级高于第二事件类型的事件类型;第二事件类型为优先级低于第一事件类型的事件类型。可选地,所述事件任务还包括事件类型;所述用户标识查找模块还适于:当所述事件类型为发布型时,由所述守护进程查找订阅所述第一用户标识的信息的第二用户标识。可选地,所述信息流列表写模块还适于:由预置的守护进程将所述事件标识写入存储在Redis数据库中的信息流列表。可选地,所述事件信息发送模块还适于:当所述第二用户标识关联在线状态时,按照所述信息流列表中事件标识的时间顺序,将所述事件标识对应的事件信息发送至所述第二用户标识对应的客户端。本专利技术实施例将基于第一用户标识触发的事件的事件标识写入订阅第一用户标识的信息的第二用户标识关联的信息流列表中,在第二用户标识关联在线状态时,发送相应的事件信息,通过异步推送在延迟允许的时间范围内进行事件整合统一处理,降低了数据的并发执行数,大大减轻了服务器压力。本专利技术实施例通过任务队列有序执行事件任务,一方面,增加的灾难发生时的数据可恢复手段,另一方面,保证了按时间维度的任务优先级区分。本专利技术实施例中的Redis数据库支持高并发的读写操作,保证了用户信息读写更新的及时性,保证了用户体验。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的【具体实施方式】。【附图说明】通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件本文档来自技高网
...

【技术保护点】
一种信息流数据的处理方法,包括:当接收到基于第一用户标识发起的一事件的处理请求时,按照所述处理请求处理所述事件,所述事件具有事件标识;查找订阅所述第一用户标识的信息的第二用户标识;所述第二用户标识具有关联的信息流列表;将所述事件标识写入所述信息流列表中;将所述信息流列表中事件标识对应的事件信息发送至所述第二用户标识对应的客户端。

【技术特征摘要】

【专利技术属性】
技术研发人员:黄钊
申请(专利权)人:北京奇虎科技有限公司奇智软件北京有限公司
类型:发明
国别省市:北京;11

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

1