统计在线用户数量的方法和装置与流程

文档序号:12789319阅读:284来源:国知局
统计在线用户数量的方法和装置与流程

本发明涉及网络技术领域,特别是涉及一种统计在线用户数量的方法和一种统计在线用户数量的装置。



背景技术:

随着网络技术的迅速发展,各类网站不断涌现,为了便于网站的维护,通常需要对网站的实时在线用户数量进行统计。但同时在线用户数达到万级时,统计在线用户数量将变得是一件困难的事情。例如,在线用户向在线统计服务器发送心跳信息,当第一次发送心跳信息时,表示用户上线,当超过3次心跳间隔未收到该用户的心跳信息时即判定用户下线。如果网站平台当前有120万用户在线,每10秒发送一次心跳,那么在线统计服务器要求达到12万QPS(QueryPer Second,每秒查询率),如果是普通的WEB服务器(1000QPS)将需要120组服务才可以承接。

现有技术中,将在线用户的心跳信息以session(会话)的方式记录到数据库中,当用户上线时创建该用户对应的session,该用户再次发送心跳信息时延长对应session的生命周期,当无该用户的心跳信息并且经过一定时间后,自动删除该用户对应的session。但是,上述方法中需要逐个查询数据库中的各用户对应session的生命周期,查询量非常大,导致在线用户数量的统计效率较低,统计不及时。



技术实现要素:

鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的统计在线用户数量的方法和相应的统计在线用户数量的装置。

依据本发明的一个方面,提供了一种统计在线用户数量的方法,包括:

接收到包括打点用户标识的打点数据时,设置所述打点用户标识对应的在线截止时间;

依据对应的在线截止时间对已保存的所有用户标识进行排序;

对于排序后的所有用户标识,按照排序顺序依次判定当前用户标识对应的在线截止时间是否已到达,直至某用户标识对应的在线截止时间未到达时停止判定;

依据判定结果统计在线用户的数量。

可选地,所述对于排序后的所有用户标识,按照排序顺序依次判定当前用户标识对应的在线截止时间是否已到达,直至某用户标识对应的在线截止时间未到达时停止判定的步骤,包括:

对于排序后的所有用户标识,从在线截止时间最早的用户标识开始,按照排序顺序依次判定当前用户标识对应的在线截止时间是否早于当前时间,直至某用户标识对应的在线截止时间等于或晚于当前时间时停止判定。

可选地,在所述接收到包括打点用户标识的打点数据时,设置所述打点用户标识对应的在线截止时间的步骤之前,还包括:

将用户标识划分为多个组,并为每组用户标识创建一个对应的独立处理线程。

可选地,所述接收到包括打点用户标识的打点数据时,设置所述打点用户标识对应的在线截止时间的步骤,包括:接收到包括打点用户标识的打点数据时,将所述打点数据转发至所述打点用户标识对应的独立处理线程,由该独立处理线程设置所述打点用户标识对应的在线截止时间;

所述依据对应的在线截止时间对已保存的所有用户标识进行排序的步骤,包括:针对每组用户标识,分别由各自对应的独立处理线程依据对应的在线截止时间对已保存的所有用户标识进行排序;

所述对于排序后的所有用户标识,按照排序顺序依次判定当前用户标识对应的在线截止时间是否已到达的步骤,包括:针对每组排序后的用户标识,分别由各自对应的独立处理线程按照排序顺序依次判定当前用户标识对应的在线截止时间是否已到达。

可选地,所述设置所述打点用户标识对应的在线截止时间的步骤,包括:

确定是否已保存所述打点用户标识;

若是,则将所述打点用户标识对应的在线截止时间更新为当前时间加上设定时间后的时间;

若否,则保存所述打点用户标识,并将所述打点用户标识对应的在线截止时间设置为当前时间加上设定时间后的时间。

可选地,所述依据判定结果统计在线用户的数量的步骤,包括:

确定对应的在线截止时间已到达的用户标识的数量,将该数量作为在线用户的数量。

依据本发明的另一方面,提供了一种统计在线用户数量的装置,包括:

设置模块,适于接收到包括打点用户标识的打点数据时,设置所述打点用户标识对应的在线截止时间;

排序模块,适于依据对应的在线截止时间对已保存的所有用户标识进行排序;

判定模块,适于对于排序后的所有用户标识,按照排序顺序依次判定当前用户标识对应的在线截止时间是否已到达,直至某用户标识对应的在线截止时间未到达时停止判定;

统计模块,适于依据判定结果统计在线用户的数量。

可选地,所述判定模块,具体适于对于排序后的所有用户标识,从在线截止时间最早的用户标识开始,按照排序顺序依次判定当前用户标识对应的在线截止时间是否早于当前时间,直至某用户标识对应的在线截止时间等于或晚于当前时间时停止判定。

可选地,所述装置还包括:分组模块,适于将用户标识划分为多个组,并为每组用户标识创建一个对应的独立处理线程。

可选地,所述设置模块,具体适于接收到包括打点用户标识的打点数据时,将所述打点数据转发至所述打点用户标识对应的独立处理线程,由该独 立处理线程设置所述打点用户标识对应的在线截止时间;

所述排序模块,具体适于针对每组用户标识,分别由各自对应的独立处理线程依据对应的在线截止时间对已保存的所有用户标识进行排序;

所述判定模块,具体适于针对每组排序后的用户标识,分别由各自对应的独立处理线程按照排序顺序依次判定当前用户标识对应的在线截止时间是否已到达。

可选地,所述设置模块,具体适于确定是否已保存所述打点用户标识;若是,则将所述打点用户标识对应的在线截止时间更新为当前时间加上设定时间后的时间;若否,则保存所述打点用户标识,并将所述打点用户标识对应的在线截止时间设置为当前时间加上设定时间后的时间。

可选地,所述统计模块,具体适于确定对应的在线截止时间已到达的用户标识的数量,将该数量作为在线用户的数量。

根据本发明的统计在线用户数量的方法和装置,在接收到打点用户的打点数据时,设置打点数据中的打点用户标识对应的在线截止时间,并依据对应的在线截止时间对已保存的所有用户标识进行排序,对于排序后的所有用户标识,按照排序顺序依次判定当前用户标识对应的在线截止时间是否已到达,直至某用户标识对应的在线截止时间未到达时停止判定,最后依据判定结果统计在线用户的数量。由此可知,本发明无需对全部用户标识进行逐个查询,仅需对排序后的部分用户标识进行判定即可,因此查询量较小,能够提高在线用户数量的统计效率,统计更加及时。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目 的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了根据本发明实施例一的一种统计在线用户数量的方法的步骤流程图;

图2示出了根据本发明实施例二的一种统计在线用户数量的方法的步骤流程图;

图3示出了根据本发明实施例三的一种统计在线用户数量的方法的步骤流程图;

图4示出了根据本发明实施例四的一种统计在线用户数量的装置的结构框图;

图5示出了根据本发明实施例五的一种统计在线用户数量的装置的结构框图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

实施例一

参照图1,示出了根据本发明实施例一的一种统计在线用户数量的方法的步骤流程图。本实施例的方法可以包括如下步骤:

步骤101,接收到包括打点用户标识的打点数据时,设置所述打点用户标识对应的在线截止时间。

目前大部分的业务统计数据都依赖浏览器端的打点来完成,即浏览器通过发起打点请求将打点数据发送给服务器,由服务器记录打点数据。所谓打点数据就是功能点的业务数据,例如当用户点击网页上的某链接,对该链接的点击信息就是打点数据。

本实施例中,打点数据可以为用户发送的心跳信息,其中对于每个在线用户每隔预设时间(例如10s等)发送一次该用户的心跳信息。打点数据中可以包括发送该打点数据的用户的打点用户标识,在接收到打点数据时将设置所述打点用户标识对应的在线截止时间。

步骤102,依据对应的在线截止时间对已保存的所有用户标识进行排序。

已保存的每个用户标识均对应一个在线截止时间,依据对应的在线截止时间对已保存的所有用户标识进行排序。其中,排序可以为升序排序,也可以为降序排序,本实施例对此并不加以限制。

需要说明的是,上述步骤101和步骤102之间没有严格的先后顺序之分,都是在满足条件时执行。例如,步骤101是在接收到打点数据时执行,步骤102可以是在步骤101之后执行,也可以是按照设定条件执行,如实时执行,或者按照设定时间间隔执行(如每隔30s执行一次步骤102等),等等,本发明实施例对此并不加以限制。

步骤103,对于排序后的所有用户标识,按照排序顺序依次判定当前用户标识对应的在线截止时间是否已到达,直至某用户标识对应的在线截止时间未到达时停止判定。

上述过程中仅需对在线截止时间已到达的用户标识进行判定即可,对于剩余在线截止时间未到达的用户标识无需再继续进行判定,因此无需对所有用户标识进行查询,而只是对其中的部分用户标识进行判定即可,查询量大大降低。

步骤104,依据判定结果统计在线用户的数量。

依据步骤103的判定结果即可对在线用户的数量进行统计,具体过程将在实施例二中进行详细论述。

本发明实施例无需对全部用户标识进行逐个查询,仅需对排序后的部分用户标识进行判定即可,因此查询量较小,能够提高在线用户数量的统计效率,统计更加及时。

实施例二

参照图2,示出了根据本发明实施例二的一种统计在线用户数量的方法的步骤流程图。本实施例的方法可以包括如下步骤:

步骤201,接收线程接收包括打点用户标识的打点数据,并在接收到打点数据时,将打点数据发送给处理线程。

本实施例中,设置接收线程用于接收用户发送的打点数据,并设置处理线程用于执行后续处理,接收线程和处理线程之间能够相互通信,接收线程在接收到打点数据时,将打点数据发送给处理线程。

优选地,该步骤201中接收线程在接收到打点数据时,将打点数据发送给处理线程的过程可以包括:接收线程在接收到打点数据时,根据UDP(User Datagram Protocol,用户数据报协议)将打点数据发送给处理线程。根据UDP进行数据的传输,能够有效提高内部的数据传输效率。

优选地,该步骤201中接收线程在接收到打点数据时,将打点数据发送给处理线程的过程可以由Nginx服务器完成。Nginx是一款轻量级的Web服务器、反向代理服务器及电子邮件(IMAP/POP3)代理服务器,Nginx服务器的性能高,可以提高处理效率。

步骤202,处理线程设置所述打点用户标识对应的在线截止时间。

打点数据中包括打点用户标识,处理线程在接收到打点数据后,将设置打点用户标识对应的在线截止时间。

优选地,该步骤202可以包括以下子步骤:

子步骤a1,确定是否已保存所述打点用户标识。若是,则执行子步骤a2,若否,则执行子步骤a3。

子步骤a2,将所述打点用户标识对应的在线截止时间更新为当前时间加上设定时间后的时间。

子步骤a3,保存所述打点用户标识,并将所述打点用户标识对应的在线截止时间设置为当前时间加上设定时间后的时间。

服务器中保存有多个用户标识,当某个用户上线时将在服务器中保存该用户的用户标识,也即服务器中保存的为之前已上线用户的用户标识。各用户标识各自对应有在线截止时间,在线截止时间表明对应用户标识的用户在 到达该在线截止时间后被认为下线。优选地,本实施例中可以利用哈希表建立用户标识和在线截止时间之间的对应关系,这样能够实现更加快速的查询。

处理线程在接收到打点数据后,确定是否已保存其中的打点用户标识,以确定该打点用户标识对应用户是否为首次发送打点数据(也即是否之前未上线),如果已保存该打点用户标识,则可以直接将所述打点用户标识对应的在线截止时间更新为当前时间加上设定时间后的时间;如果未保存该打点用户标识,则先保存该打点用户标识(也即在服务器中增加该打点用户标识,表明该用户上线),并将所述打点用户标识对应的在线截止时间设置为当前时间加上设定时间后的时间。对于其中的设定时间,本领域技术人员可以根据实际经验选择任意适用的数值,如可以将设定时间设置为30s、1min等等,本实施例中对具体的数值并不加以限制。

优选地,本实施例中在步骤201之后,还可以包括:若判定打点用户标识对应用户为首次上线,则发送所述打点用户标识对应用户的上线通知。也即处理线程对打点用户标识对应用户是否为首次上线进行判定,若判定为首次上线,则处理线程可以向用户上下线事件接口发送该打点用户标识对应用户的上线通知,通过发送用户的上线通知,可以及时了解用户的上线情况。其中,若判定所述打点用户标识对应用户为首次上线,则发送所述打点用户标识对应用户的上线通知的过程可以包括:确定是否已保存所述打点用户标识;若是,则判定所述打点用户标识对应用户为首次上线,并发送所述打点用户标识对应用户的上线通知,否则不进行处理,也即无需发送用户的上线通知。

需要说明的是,本实施例中并不限定步骤202处理线程设置打点用户标识对应的在线截止时间的过程,与上述若判定打点用户标识对应用户为首次上线,则发送打点用户标识对应用户的上线通知的过程之间执行的先后顺序。

步骤203,处理线程依据对应的在线截止时间对已保存的所有用户标识进行排序。

其中,排序可以为按照在线截止时间进行升序排序,也可以为按照在线截止时间进行降序排序,本实施例对此并不加以限制。

步骤204,处理线程对于排序后的所有用户标识,按照排序顺序依次判定当前用户标识对应的在线截止时间是否已到达,直至某用户标识对应的在线截止时间未到达时停止判定。

优选地,该步骤204可以包括:对于排序后的所有用户标识,从在线截止时间最早的用户标识开始,按照排序顺序依次判定当前用户标识对应的在线截止时间是否早于当前时间,直至某用户标识对应的在线截止时间等于或晚于当前时间时停止判定。

本实施例中从对应的在线截止时间最早的用户标识开始判断,如果该用户标识对应的在线截止时间早于当前时间,则确定在线截止时间已到达,也即该用户标识对应的用户可能已下线,此时将继续针对下一个用户标识进行判断;如果该用户标识对应的在线截止时间等于或晚于当前时间,则确定在线截止时间还未到达,也即该用户标识对应的用户还未下线,此时由于该用户标识下面的用户标识对应的在线截止时间均晚于该用户标识对应的在线截止时间,因此可直接确定该用户标识下面的用户标识对应的在线截止时间均还未到达,也即下面的用户标识对应的用户均还未下线,因此无需再继续进行判断。

步骤205,处理线程依据判定结果统计在线用户的数量。

经过上述步骤204的判定之后,即可依据判定结果统计在线用户的数量。该步骤205具体可以包括:处理线程确定对应的在线截止时间已到达的用户标识的数量,将该数量作为在线用户的数量。

优选地,本实施例中在上述步骤204之后,还可以包括:针对对应的在线截止时间已到达的用户标识,发送该用户标识对应用户的下线通知。也即处理线程针对对应的在线截止时间已到达的用户标识,可以向用户上下线事件接口发送该用户标识对应用户的下线通知。如果对应的在线截止时间已到达,则可以说明该用户标识对应的用户已下线,因此可以发送该用户标识对应用户的下线通知,通过发送用户的下线通知,可以及时了解用户的下线情 况。

本实施例中,无需对全部用户标识进行逐个查询,仅需对排序后的部分用户标识进行判定即可,因此查询量较小,能够提高在线用户数量的统计效率,统计更加及时。

实施例三

参照图3,示出了根据本发明实施例三的一种统计在线用户数量的方法的步骤流程图。本实施例的方法可以包括如下步骤:

步骤301,将用户标识划分为多个组,并为每组用户标识创建一个对应的独立处理线程。

本实施例中,可以按照设定方式将用户标识划分为多个组,对于具体的划分方式,本领域技术人员根据实际经验选用任意适用的方式均可,本发明实施例对此并不加以限制。例如,可以将用户标识1~10000划分为一个组,将用户标识10001~20000划分为一个组,以此类推,等等。

针对每组用户标识,可以创建一个对应的独立处理线程,该独立处理线程主要用于处理与其对应的一组用户标识的相关事件。

步骤302,接收到包括打点用户标识的打点数据时,将所述打点数据转发至所述打点用户标识对应的独立处理线程,由该独立处理线程设置所述打点用户标识对应的在线截止时间。

在接收到包括打点用户标识的打点数据时,首先确定打点用户标识所属的分组,确定后将打点数据转发至打点用户标识对应的独立处理线程,也即为打点用户标识所属的分组中的用户标识创建的对应独立处理线程。该独立处理线程接收到打点数据后,设置打点用户标识对应的在线截止时间,对于设置打点用户标识对应的在线截止时间的具体过程,参照上述实施例二中步骤202的相关描述即可,本实施例中在此不再详细论述。

优选地,在接收到包括打点用户标识的打点数据时,将所述打点数据转发至所述打点用户标识对应的独立处理线程后,还可以包括:由所述打点用户标识对应的独立处理线程在判定所述打点用户标识对应用户为首次上线 时,发送所述打点用户标识对应用户的上线通知。

步骤303,针对每组用户标识,分别由各自对应的独立处理线程依据对应的在线截止时间对已保存的所有用户标识进行排序。

对于各独立处理线程的排序过程,参照上述实施例二中步骤203的相关描述即可,本实施例中在此不再详细论述。

步骤304,针对每组排序后的用户标识,分别由各自对应的独立处理线程按照排序顺序依次判定当前用户标识对应的在线截止时间是否已到达,直至某用户标识对应的在线截止时间未到达时停止判定。

对于各独立处理线程的判定过程,参照上述实施例二中步骤204的相关描述即可,本实施例中在此不再详细论述。

步骤305,针对每组排序后的用户标识,分别由各自对应的独立处理线程依据各自的判定结果统计该组在线用户的数量,并依据各独立线程的统计结果确定全部在线用户的数量。

对于各独立处理线程的统计过程,参照上述实施例二中步骤205的相关描述即可,本实施例中在此不再详细论述。各独立处理线程得到各自的统计结果(也即各自对应的一组用户标识中在线用户的数量)后,将各独立线程的统计结果相加,相加后得到的结果即为全部在线用户的数量。

优选地,本实施例中在上述步骤304之后,还可以包括:针对每组排序后的用户标识,分别由各自对应的独立处理线程针对该组中对应的在线截止时间已到达的用户标识,发送该用户标识对应用户的下线通知。

本实施例中将用户标识划分为多个组,并设置多个独立处理线程来分别处理多个组的相关过程的方式,使得对打点数据的处理更加及时,能承担的QPS更高。

对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。

实施例四

参照图4,示出了根据本发明实施例四的一种统计在线用户数量的装置的结构框图。本实施例的装置可以包括如下模块:

设置模块401,适于接收到包括打点用户标识的打点数据时,设置所述打点用户标识对应的在线截止时间;

排序模块402,适于依据对应的在线截止时间对已保存的所有用户标识进行排序;

判定模块403,适于对于排序后的所有用户标识,按照排序顺序依次判定当前用户标识对应的在线截止时间是否已到达,直至某用户标识对应的在线截止时间未到达时停止判定;

统计模块404,适于依据判定结果统计在线用户的数量。

本发明实施例无需对全部用户标识进行逐个查询,仅需对排序后的部分用户标识进行判定即可,因此查询量较小,能够提高在线用户数量的统计效率,统计更加及时。

实施例五

参照图5,示出了根据本发明实施例五的一种统计在线用户数量的装置的结构框图。本实施例的装置可以包括如下模块:

设置模块501,适于接收到包括打点用户标识的打点数据时,设置所述打点用户标识对应的在线截止时间;

排序模块502,适于依据对应的在线截止时间对已保存的所有用户标识进行排序;

判定模块503,适于对于排序后的所有用户标识,按照排序顺序依次判定当前用户标识对应的在线截止时间是否已到达,直至某用户标识对应的在线截止时间未到达时停止判定;

统计模块504,适于依据判定结果统计在线用户的数量。

优选地,所述判定模块,具体适于对于排序后的所有用户标识,从在线 截止时间最早的用户标识开始,按照排序顺序依次判定当前用户标识对应的在线截止时间是否早于当前时间,直至某用户标识对应的在线截止时间等于或晚于当前时间时停止判定。

优选地,所述设置模块,具体适于确定是否已保存所述打点用户标识;若是,则将所述打点用户标识对应的在线截止时间更新为当前时间加上设定时间后的时间;若否,则保存所述打点用户标识,并将所述打点用户标识对应的在线截止时间设置为当前时间加上设定时间后的时间。

优选地,所述统计模块,具体适于确定对应的在线截止时间已到达的用户标识的数量,将该数量作为在线用户的数量。

优选地,本实施例的装置还可以包括:分组模块505,适于将用户标识划分为多个组,并为每组用户标识创建一个对应的独立处理线程。相应的,所述设置模块,具体适于接收到包括打点用户标识的打点数据时,将所述打点数据转发至所述打点用户标识对应的独立处理线程,由该独立处理线程设置所述打点用户标识对应的在线截止时间;所述排序模块,具体适于针对每组用户标识,分别由各自对应的独立处理线程依据对应的在线截止时间对已保存的所有用户标识进行排序;所述判定模块,具体适于针对每组排序后的用户标识,分别由各自对应的独立处理线程按照排序顺序依次判定当前用户标识对应的在线截止时间是否已到达。

本发明实施例无需对全部用户标识进行逐个查询,仅需对排序后的部分用户标识进行判定即可,因此查询量较小,能够提高在线用户数量的统计效率,统计更加及时;并且通过设置多个独立处理线程来分别处理多个组的相关过程的方式,使得对打点数据的处理更加及时,能承担的QPS更高。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对 任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的统计在线用户数量的设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

本发明公开了A1、一种统计在线用户数量的方法,包括:

接收到包括打点用户标识的打点数据时,设置所述打点用户标识对应的在线截止时间;

依据对应的在线截止时间对已保存的所有用户标识进行排序;

对于排序后的所有用户标识,按照排序顺序依次判定当前用户标识对应的在线截止时间是否已到达,直至某用户标识对应的在线截止时间未到达时停止判定;

依据判定结果统计在线用户的数量。

A2、如A1所述的方法,所述对于排序后的所有用户标识,按照排序顺序依次判定当前用户标识对应的在线截止时间是否已到达,直至某用户标识 对应的在线截止时间未到达时停止判定的步骤,包括:

对于排序后的所有用户标识,从在线截止时间最早的用户标识开始,按照排序顺序依次判定当前用户标识对应的在线截止时间是否早于当前时间,直至某用户标识对应的在线截止时间等于或晚于当前时间时停止判定。

A3、如A1所述的方法,在所述接收到包括打点用户标识的打点数据时,设置所述打点用户标识对应的在线截止时间的步骤之前,还包括:

将用户标识划分为多个组,并为每组用户标识创建一个对应的独立处理线程。

A4、如A3所述的方法,所述接收到包括打点用户标识的打点数据时,设置所述打点用户标识对应的在线截止时间的步骤,包括:接收到包括打点用户标识的打点数据时,将所述打点数据转发至所述打点用户标识对应的独立处理线程,由该独立处理线程设置所述打点用户标识对应的在线截止时间;

所述依据对应的在线截止时间对已保存的所有用户标识进行排序的步骤,包括:针对每组用户标识,分别由各自对应的独立处理线程依据对应的在线截止时间对已保存的所有用户标识进行排序;

所述对于排序后的所有用户标识,按照排序顺序依次判定当前用户标识对应的在线截止时间是否已到达的步骤,包括:针对每组排序后的用户标识,分别由各自对应的独立处理线程按照排序顺序依次判定当前用户标识对应的在线截止时间是否已到达。

A5、如A1所述的方法,所述设置所述打点用户标识对应的在线截止时间的步骤,包括:

确定是否已保存所述打点用户标识;

若是,则将所述打点用户标识对应的在线截止时间更新为当前时间加上设定时间后的时间;

若否,则保存所述打点用户标识,并将所述打点用户标识对应的在线截止时间设置为当前时间加上设定时间后的时间。

A6、如A1所述的方法,所述依据判定结果统计在线用户的数量的步 骤,包括:

确定对应的在线截止时间已到达的用户标识的数量,将该数量作为在线用户的数量。

本发明还公开了B7、一种统计在线用户数量的装置,包括:

设置模块,适于接收到包括打点用户标识的打点数据时,设置所述打点用户标识对应的在线截止时间;

排序模块,适于依据对应的在线截止时间对已保存的所有用户标识进行排序;

判定模块,适于对于排序后的所有用户标识,按照排序顺序依次判定当前用户标识对应的在线截止时间是否已到达,直至某用户标识对应的在线截止时间未到达时停止判定;

统计模块,适于依据判定结果统计在线用户的数量。

B8、如B7所述的装置,所述判定模块,具体适于对于排序后的所有用户标识,从在线截止时间最早的用户标识开始,按照排序顺序依次判定当前用户标识对应的在线截止时间是否早于当前时间,直至某用户标识对应的在线截止时间等于或晚于当前时间时停止判定。

B9、如B7所述的装置,还包括:

分组模块,适于将用户标识划分为多个组,并为每组用户标识创建一个对应的独立处理线程。

B10、如B9所述的装置,所述设置模块,具体适于接收到包括打点用户标识的打点数据时,将所述打点数据转发至所述打点用户标识对应的独立处理线程,由该独立处理线程设置所述打点用户标识对应的在线截止时间;

所述排序模块,具体适于针对每组用户标识,分别由各自对应的独立处理线程依据对应的在线截止时间对已保存的所有用户标识进行排序;

所述判定模块,具体适于针对每组排序后的用户标识,分别由各自对应的独立处理线程按照排序顺序依次判定当前用户标识对应的在线截止时间是否已到达。

B11、如B7所述的装置,所述设置模块,具体适于确定是否已保存所述 打点用户标识;若是,则将所述打点用户标识对应的在线截止时间更新为当前时间加上设定时间后的时间;若否,则保存所述打点用户标识,并将所述打点用户标识对应的在线截止时间设置为当前时间加上设定时间后的时间。

B12、如B7所述的装置,所述统计模块,具体适于确定对应的在线截止时间已到达的用户标识的数量,将该数量作为在线用户的数量。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1