消息到达率确定方法、装置、设备和计算机可读存储介质
【技术领域】
本公开的实施例一般涉及通信领域,并且更具体地,涉及消息到达率统计方法、装置、设备和计算机可读存储介质。
【背景技术】
随着互联网的发展,越来越多的应用,比如常用的即时通讯工具、直播间等,都需要提供消息互动的功能。以固定的时间间隔从服务器获取最新的互动消息的定时轮询架构是常见的消息互动实现方式之一。
为了衡量服务器下发消息的稳定性和可用性是否满足应用提供商的需求,需要统计消息的到达率。统计到达率需要分别统计服务器一共下发了多少消息,以及客户端一共接收了多少消息。以直播间为例,到达率是指每个用户在直播间的时间段内获取到的消息除以服务器产生的消息得到的占比。
统计到达率需要将每个用户的拉取记录都存放在数据库中,然后对所有用户分别确定到达率。需要存储的数据是小时级别的,甚至是天级别的,数据量较大,无法实时处理庞大的线上数据,导致延时较大,无法满足对到达率进行实时的统计的需求,也导致无法从到达率上实时监控系统健康状况。
【发明内容】
根据本公开的实施例,提供了一种消息到达率确定方案,能够解决现有技术中需要存储全量消息上报数据、实时性差的问题。
在本公开的第一方面,提供了一种消息到达率确定方法。该方法包括:从上报消息队列中获取用户客户端的上报的消息ID,其中,所述消息ID是所述消息进入消息系统时生成的顺序ID;对所述上报的消息ID依据时间窗口进行聚合,分别获得当前时间窗口对应的不同会话上报的消息ID的范围;从下发消息ID列表中分别获取不同会话上报的消息ID的范围内的下发消息ID的数量;根据所述当前时间窗口对应的不同会话上报的消息ID的数量与所述下发消息ID的数量,确定所述用户客户端的所述当前时间窗口的消息到达率;确定所述当前时间窗口的各用户客户端的消息到达率的平均值,作为所述消息系统的所述当前时间窗口的消息达到率。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,若所述消息ID包括时间戳,则所述下发消息ID列表包括:会话标识、消息ID;所述上报消息队列包括:会话标识、用户标识、消息ID;若所述消息ID不包括时间戳,则所述下发消息ID列表包括:会话标识、消息ID、时间戳;所述消息ID不包括时间戳,则所述上报消息队列包括:会话标识、用户标识、消息ID、时间戳。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述时间戳为所述消息进入所述消息系统的时间。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述上报消息队列用于保存用户客户端上报的通过上一次拉取请求获取到的消息的消息ID。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述时间窗口大于所述拉取请求的拉取时间间隔。
在本公开的第二方面,提供了一种用于处理消息的方法。该方法包括:接收用户客户端和/或会话服务器发送的消息;为所述消息生成消息ID,其中,所述消息ID为顺序ID;将所述消息存储在下发消息ID列表中;响应于接收到的用户客户端发出的拉取请求,下发所述消息;以及获取所述用户客户端上报的通过上一次拉取请求获取到的消息的消息ID;将所述消息ID保存到上报消息队列中。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,若所述消息ID包括时间戳,则所述下发消息ID列表包括:会话标识、消息ID;所述上报消息队列包括:会话标识、用户标识、消息ID;若所述消息ID不包括时间戳,则所述下发消息ID列表包括:会话标识、消息ID、时间戳;所述上报消息队列包括:会话标识、用户标识、消息ID、时间戳;其中,所述时间戳为所述消息进入所述消息系统的时间。
在本公开的第三方面,提供了一种消息到达率确定装置。该装置包括:上报消息ID获取模块,用于从上报消息队列中获取用户客户端的上报的消息ID,其中,所述消息ID是所述消息进入消息系统时生成的顺序ID;上报消息ID统计模块,用于对所述上报的消息ID依据时间窗口进行聚合,以分别获得当前时间窗口对应的不同会话上报的消息ID的范围;下发消息ID数量获取模块,用于从下发消息ID列表中分别获取不同会话上报的消息ID的范围内的下发消息ID的数量;第一消息到达率确定模块,用于根据所述当前时间窗口对应的不同会话上报的消息ID的数量与所述下发消息ID的数量,确定所述用户客户端的所述当前时间窗口的消息到达率;第二消息到达率确定模块,用于确定所述当前时间窗口的各用户客户端的消息到达率的平均值,作为所述消息系统的所述当前时间窗口的消息达到率。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,若所述消息ID包括时间戳,则所述下发消息ID列表包括:会话标识、消息ID;所述上报消息队列包括:会话标识、用户标识、消息ID;若所述消息ID不包括时间戳,则所述下发消息ID列表包括:会话标识、消息ID、时间戳;所述消息ID不包括时间戳,则所述上报消息队列包括:会话标识、用户标识、消息ID、时间戳。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述时间戳为所述消息进入所述消息系统的时间。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述上报消息队列用于保存用户客户端上报的通过上一次拉取请求获取到的消息的ID。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述时间窗口大于所述拉取请求的拉取时间间隔。
在本公开的第四方面,提供了一种用于处理消息的装置。该装置包括:消息接收模块,用于接收用户客户端和/或会话服务器发送的消息;消息ID生成模块,用于为接收到的消息生成顺序ID形式的消息ID;下发消息ID列表生成模块,用于将所生成的消息ID存储在下发消息ID列表中;拉取请求接收模块,用于接收用户客户端发出的拉取请求;消息下发模块,用于根据所述拉取请求下发所述消息;消息ID接收模块,用于接收用户客户端上报的通过上一次拉取请求获取到的消息的消息ID;上报消息队列生成模块,用于所述消息ID保存到上报消息队列中。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,
若所述消息ID包括时间戳,则所述下发消息ID列表包括:会话标识、消息ID;所述上报消息队列包括:会话标识、用户标识、消息ID;
若所述消息ID不包括时间戳,则所述下发消息ID列表包括:会话标识、消息ID、时间戳;所述上报消息队列包括:会话标识、用户标识、消息ID、时间戳;其中,所述时间戳为所述消息进入所述消息系统的时间。
在本公开的第五方面,提供了一种电子设备。该电子设备包括:存储器和处理器,所述存储器上存储有计算机程序,所述处理器执行所述程序时实现如以上所述的方法。
在本公开的第六方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如根据本公开的第一方面和/或第二发面的方法。
应当理解,发明内容部分中所描述的内容并非旨在限定本公开的实施例的关键或重要特征,亦非用于限制本公开的范围。本公开的其它特征将通过以下的描述变得容易理解。
【附图说明】
结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标记表示相同或相似的元素,其中:
图1示出了能够在其中实现本公开的实施例的示例性运行环境的示意图;
图2示出了图1中所示的用户客户端、消息系统和消息到达率确定系统之间的交互方法的示意图;
图3示出了根据本公开的实施例的用于处理消息的方法的流程图;
图4示出了根据本公开的实施例的消息到达率确定方法的流程图;
图5示出了根据本公开的实施例的用于处理消息的装置的方框图;
图6示出了根据本公开的实施例的消息到达率确定装置的方框图;
图7示出了能够实施本公开的实施例的示例性电子设备的方框图。
【具体实施方式】
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的全部其他实施例,都属于本公开保护的范围。
另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
本公开中,通过获取固定的时间窗口内用户客户端向消息系统上报的消息ID的数量,以及所述消息ID的范围内的下发消息ID的数量,确定消息系统的当前时间窗口的消息达到率。消息系统仅需要存储时间窗口内的消息上报数据,节省了存储空间;可以确定每个时间窗口内的到达率,提高了到达率确定的实时性。
图1示出了能够在其中实现本公开的实施例的示例性运行环境100的示意图。在运行环境100中包括用户客户端102、消息系统104和消息到达率确定系统106。
用户客户端102可以是提供即时通讯或直播服务的手机App或PC软件。用户客户端102向消息系统104发送消息。例如,在直播场景下,使用用户客户端102观看直播的用户可以输入评论消息,用户客户端102可以将评论信息发送给消息系统104。虽然在图1中仅示出了一个用户客户端102,但是运行环境100中可以包括多个用户客户端102。
消息系统104接收会话中的各用户客户端102发送的消息,为所述消息生成消息ID,其中,所述消息ID为顺序ID。消息系统104将消息ID存储在下发消息ID列表中。用户客户端102可以向消息系统104发送针对消息的拉取请求。消息系统104在接收到拉取请求时,向用户客户端102下发消息;并且获取用户客户端102上报的通过上一次拉取请求获取到的消息的消息ID,将所述消息ID保存到上报消息队列中。
在一些实施例中,消息系统104还用于接收会话中的会话服务器发送的消息,例如系统通知,为所述消息生成消息ID。
消息到达率确定系统106从消息系统104的上报消息队列中获取用户客户端102的上报的消息ID。消息到达率确定系统106通过对上报的消息ID依据时间窗口进行聚合,来分别获得当前时间窗口对应的不同会话上报的消息ID的范围。进一步地,消息到达率确定系统106从消息系统104的下发消息ID列表中分别获取不同会话上报的消息ID的范围内的下发消息ID的数量。消息到达率确定系统106根据当前时间窗口对应的不同会话上报的消息ID的数量与下发消息ID的数量,确定用户客户端102的当前时间窗口的不同会话的消息到达率。消息到达率确定系统106通过确定当前时间窗口的各用户客户端102的消息到达率的平均值,来作为消息系统104的时间窗口的消息达到率。
虽然在图1中,消息系统104和消息到达率确定系统106被示为是分离的,但是本公开并不限于此。在本公开的其他实施例中,消息系统104与消息到达率确定系统106可以被集成为同一个系统。
图2示出了图1中所示的用户客户端102、消息系统104和消息到达率确定系统106之间的交互方法200的示意图。
在框205,用户客户端102可以向消息系统104发送消息。例如,使用用户客户端102来观看直播的观众可以对主播进行评论。观众可以通过手机等输入评论消息。用户客户端102可以将评论消息发送给消息系统104。
在框210,消息系统104接收会话中的各用户客户端102发送的消息,例如观众发送的评论消息。在框215,消息系统104为消息生成顺序ID形式的消息ID。在框220,消息系统104将消息ID存储在下发消息ID列表中。
在框225,用户客户端102向消息系统104发送拉取请求,以及上报通过上一次拉取请求获取到的消息的消息ID。在一些实施例中,用户客户端102可以以固定的时间间隔向消息系统104发送拉取请求,以从消息系统104拉取消息。
在框230,消息系统104响应于接收到用户客户端102发出的拉取请求,下发所述消息。在框235,消息系统104获取用户客户端102上报的通过上一次拉取请求获取到的消息的消息ID,将所述消息ID保存到上报消息队列中。
在框240,消息到达率确定系统106从消息系统104的上报消息队列中获取所述用户客户端102的上报的消息ID。在框245,消息到达率确定系统106对所述上报的消息ID依据时间窗口进行聚合,以分别获得所述用户客户端102的当前时间窗口对应的不同会话上报的消息ID的范围。在框250,消息到达率确定系统106从所述消息系统104的下发消息ID列表中分别获取不同会话上报的消息ID的范围内的下发消息ID的数量。在框255,消息到达率确定系统106根据所述当前时间窗口对应的不同会话上报的消息ID的数量与所述下发消息ID的数量,得到所述用户客户端102的当前时间窗口的消息到达率。在框260,消息到达率确定系统106确定所述当前时间窗口的各用户客户端102的消息到达率的平均值,作为所述消息系统104的所述时间窗口的消息达到率。
根据本公开的实施例,消息系统104仅需要存储时间窗口内的消息上报数据,节省了存储空间。进一步地,消息到达率确定系统106可以确定消息系统104在每个时间窗口内的消息到达率,并可分别针对每个用户客户端102确定每个时间窗口内的消息到达率,为帮助维护人员实时监控系统健康状况,及时的发现故障提供了便利。
图3示出了根据本公开实施例的用于处理消息的方法300的流程图。方法300可以由图1中的消息系统104执行。
在框310,消息系统104接收用户客户端102和/或会话服务器发送的消息。在一些实施例中,消息源自于会话。用户经由用户客户端102进入一个特定的群组或直播间时会产生一个会话,离开群组或直播间时,会话结束。即,用户通过消息系统104与一个或多个其他用户产生消息互动行为的时间段算作一个会话。
会话中的消息包括用户在会话中的发言、系统通知。用户在会话中的发言通过所登录的用户客户端102发送给消息系统104,会话中的系统通知由会话服务器发送给消息系统104。会话中的消息带有一个会话标识用于维护或区分用户所在群组或直播间,会话通过全局唯一的字符串或数字进行标识。每当一个新的会话产生时消息系统104就给该会话分配一个新的标识。用户通过用户客户端102加入会话时就与这个标识产生了绑定关系,可以通过此标识找到与此会话产生关联的所有用户。
在框320,消息系统104为接收到的消息生成顺序ID形式的消息ID。在一些实施例中,所述消息ID是所述消息进入消息系统104时由顺序ID生成器生成的;所述顺序ID生成器用于以顺序的方式生成不重复的数值标识;所述顺序ID生成器可以是集成在所述消息系统104中的模块,也可以是部署在所述消息系统104之外的独立模块。
在一些实施例中,所述消息ID包括所述顺序ID生成器生成的序列号和时间戳;所述下发消息ID列表包括:会话标识、消息ID。
在一些实施例中,所述消息ID仅包括所述顺序ID生成器生成的序列号,不包括时间戳;所述下发消息ID列表包括:会话标识、消息ID、时间戳。所述时间戳为消息系统104接收用户客户端102和/或会话服务器发送的消息的时间,即所述消息进入消息系统104的时间。
在框330,消息系统104将所生成的消息ID存储在下发消息ID列表中。消息系统104可以将所述消息顺序地缓存在用户所在的会话的数据结构中,并且将所述消息ID存储在下发消息ID列表中。在一些实施例中,下发消息ID列表可以是顺序的有序链表。
在框340,消息系统104接收用户客户端102发出的拉取请求。在一些实施例中,群组或直播间可以采用定时轮询架构,用户客户端102以固定的拉取时间间隔(轮询窗口)向消息系统104发送拉取请求,用于从消息系统104中顺序的获取消息系统104收到的所有消息。固定的拉取时间间隔(轮询窗口)通常都很短,为秒级别,例如可以取两秒,但本公开的实施例并不限于两秒,可以根据具体的应用取不同的值。
在框350,消息系统104根据所述拉取请求下发所述消息。在一些实施例中,消息系统104将缓存在用户所在的会话的数据结构中的消息下发给所述用户客户端102。
在框360,消息系统104接收用户客户端102上报的通过上一次拉取请求获取到的消息的消息ID。用户客户端102通过上一次拉取请求获取到的消息可能少于消息系统104下发的消息。为了统计消息到达率,就需要获取用户客户端102接收消息的详细情况。因此,用户客户端102向消息系统104发送拉取请求的同时,向消息系统104上报通过上一次拉取请求获取到的消息的ID。这样,减少了用户客户端102与消息系统104之间的交互次数。
在框370,消息系统104将所述消息ID保存到上报消息队列中。消息系统104根据用户客户端102发出的拉取请求,下发所述消息的同时/之前/之后,消息系统104将所述用户客户端102上报的通过上一次拉取请求获取到的消息的ID保存到上报消息队列中。
在一些实施例中,消息系统104可以为每一个用户建立一个上报消息队列。在这种情况下,上报消息队列可能对应于同一用户的多个会话。
在一些实施例中,若所述消息ID包括时间戳,则所述上报消息队列包括:会话标识、用户标识、消息ID。
在一些实施例中,若所述消息ID不包括时间戳,则所述上报消息队列包括:会话标识、用户标识、消息ID、时间戳。由于所述消息ID不包括时间戳,需根据所述消息ID,从所述下发消息ID列表中获取对应的时间戳。时间戳可以为消息到达率确定系统106对所述上报的消息ID依据时间窗口进行聚合提供依据,即根据所述消息ID对应的时间戳进行聚合。
根据本公开的实施例,消息系统104建立了下发消息ID列表和上报消息队列,为消息到达率确定系统106根据用户客户端102收到的消息与消息系统104下发的消息的总和的占比以确定消息到达率提供了前提条件。
图4示出了根据本公开的实施例的消息到达率确定方法400的流程图;方法400可以由图1中的消息到达率确定系统106执行。
在框410,消息到达率确定系统106从消息系统104的上报消息队列中获取用户客户端102的上报的消息ID,消息ID是所述消息进入消息系统104时生成的顺序ID。
在一些实施例中,消息到达率确定系统106采用流式框架(例如Flink、Spark等),以固定的消费时间间隔从消息系统104的上报消息队列中消费数据,即按顺序获取上报消息队列中的消息ID。获取消息ID的时间间隔大于上述拉取时间间隔。由于用户客户端102上报的消息ID可能有乱序问题,若获取时间间隔过小,取样太少会导致不准确。若获取时间间隔太长则无法体现流式实时确定消息到达率的效果。可以根据具体的应用来调整获取时间间隔的时长,例如时长可以取值10-60秒,但是本公开的实施例并不限于10-60秒。
在框420,消息到达率确定系统106对所述上报的消息ID依据时间窗口进行聚合,以分别获得当前时间窗口对应的不同会话上报的消息ID的范围。在一些实施例中,消息到达率确定系统1066将获取到的数据按照预设的聚合时间窗口进行聚合。在一些实施例中,聚合时间窗口可以与获取时间间隔一致,例如30秒一个时间窗口。在一些实施例中,聚合时间窗口也可以大于获取时间间隔,例如为获取时间间隔的倍数。
在一些实施例中,消息到达率确定系统106根据所述上报消息队列中包括的时间戳,将所述上报的消息ID按照预设的聚合时间窗口进行聚合。对应的,消息系统104中只需存储时间窗口内的上报消息ID,不需要存储全量数据,从而节省了存储空间。
在一些实施例中,所述上报消息队列可能对应于同一用户的多个会话。消息到达率确定系统106可以根据所述上报消息队列中包括的会话标识,分别获得当前时间窗口对应的不同会话上报的消息ID的范围。由于所述消息ID为顺序ID,因此,只需要进行排序即可得到所述消息ID的范围。
在一些实施例中,消息到达率确定系统106可以将同一个用户同一个会话内的在聚合时间窗口内的上报消息ID进行排序。之后,消息到达率确定系统106可以基于排序确定最小的消息ID(minMsgId)和最大的消息ID(maxMsgId),从而确定出消息ID的范围。由于可能有部分消息在从消息系统104到用户客户端102的传输过程中丢失,因此,所述消息ID的范围内,可能存在缺失的消息ID。
在一些实施例中,消息系统104为每一个用户建立一个上报消息队列,消息到达率确定系统106分别针对每一个用户,从所述消息系统的上报消息队列中获取用户客户端102的上报的消息ID,对所述上报的消息ID依据时间窗口进行聚合,以分别获得不同用户客户端102的当前时间窗口对应的不同会话上报的消息ID的范围。
在框430,消息到达率确定系统106从消息系统104的下发消息ID列表中分别获取不同会话上报的消息ID的范围内的下发消息ID的数量。在一些实施例中,消息到达率确定系统106可以根据所述当前时间窗口对应的不同会话上报的消息ID的范围,从消息系统104的下发消息ID列表中分别获取不同会话上报的消息ID的范围内的下发消息ID的数量。在下发消息ID列表中,消息ID包括顺序ID生成器生成的序列号,消息到达率确定系统106根据所述序列号的范围,即可查询得到下发消息ID的数量。
在框440,消息到达率确定系统106根据所述当前时间窗口对应的不同会话上报的消息ID的数量与所述下发消息ID的数量,确定用户客户端102的所述当前时间窗口的消息到达率。
消息到达率确定系统106根据所述当前时间窗口对应的不同会话上报的消息ID的数量与所述下发消息ID的数量,得到用户客户端102的所述当前时间窗口的不同会话的消息到达率。消息到达率确定系统106对用户客户端102的所述当前时间窗口的不同会话的消息到达率进行平均,即可得到用户客户端102的所述当前时间窗口的消息到达率。
实际应用中,不同用户进入某个会话和离开某个会话都是随机的,例如如果用户在30s周期的时间窗口内,如第5s进入某个会话,第20s离开该会话,则单独确定15s内的到达率,最后与其他30s周期的时间窗口内的会话的到达率进行平均。在一些实施例中,以会话开始后用户上报消息ID的第一个时间点作为到达率统计的开始时间点。
通过确定用户客户端102的所述当前时间窗口的消息到达率,可以对用户客户端102的消息到达率进行实时监控,为维护人员实时监控用户客户端102的健康状况,及时发现故障提供了便利。
在框450,消息到达率确定系统106确定所述当前时间窗口的各用户客户端102的消息到达率的平均值,作为消息系统104的所述当前时间窗口的消息达到率。
根据本公开的实施例,实现了以下技术效果:
1、不需要存储全量的消息上报数据,消息系统104仅需要存储时间窗口内的消息上报数据,节省了存储空间;
2、到达率确定的实时性好,可以确定消息系统104在每个时间窗口内的到达率,并可分别确定每个用户客户端102的到达率或消息系统的到达率,为帮助维护人员实时监控系统健康状况,及时发现故障提供了便利。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本公开并不受所描述的动作顺序的限制,因为依据本公开,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本公开所必须的。
以上是关于方法实施例的介绍,以下通过装置实施例,对本公开所述方案进行进一步说明。
图5示出了根据本公开的实施例的用于处理消息的装置500的方框图。装置500可以被包括在图1的消息系统104中或者被实现为消息系统104。如图5所示,装置500包括:消息接收模块510,用于接收用户客户端102和/或会话服务器发送的消息;消息ID生成模块520,用于为接收到的消息生成顺序ID形式的消息ID;下发消息ID列表生成模块530,用于将所生成的消息ID存储在下发消息ID列表中;拉取请求接收模块540,用于接收用户客户端102发出的拉取请求;消息下发模块550,用于根据所述拉取请求下发所述消息;消息ID接收模块560,用于接收用户客户端102上报的通过上一次拉取请求获取到的消息的消息ID;上报消息队列生成模块570,用于所述消息ID保存到上报消息队列中。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,所述描述的模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
图6示出了根据本公开的实施例的消息到达率确定装置600的方框图。装置600可以被包括在图1的消息到达率确定系统106中,或者被实现为消消息到达率确定系统106。如图6所示,装置600包括:上报消息ID获取模块610,用于从上报消息队列中获取用户客户端的上报的消息ID,其中,所述消息ID是所述消息进入消息系统时生成的顺序ID;上报消息ID统计模块620,用于对所述上报的消息ID依据时间窗口进行聚合,以分别获得当前时间窗口对应不同会话的上报的消息ID的范围;下发消息ID数量获取模块630,用于从下发消息ID列表中分别获取不同会话上报的消息ID的范围内的下发消息ID的数量;第一消息到达率确定模块640,用于根据所述当前时间窗口对应的上报不同会话上报的消息ID的数量与所述下发消息ID的数量,确定所述用户客户端的所述当前时间窗口的消息到达率;第二消息到达率确定模块650,确定所述当前时间窗口的各用户客户端的消息到达率的平均值,作为所述消息系统的所述当前时间窗口的消息达到率。
图7示出了可以用来实施本公开的实施例的电子设备700的示意性框图。设备700可以用于实现图1的消息系统104和消息到达率确定系统106中的至少一个。如图所示,设备700包括中央处理单元(CPU)701,其可以根据存储在只读存储器(ROM)702中的计算机程序指令或者从存储单元708加载到随机访问存储器(RAM)703中的计算机程序指令,来执行各种适当的动作和处理。在RAM 703中,还可以存储设备700操作所需的各种程序和数据。CPU701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
设备700中的多个部件连接至I/O接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理单元701执行上文所描述的各个方法和处理,例如方法200、300、400。例如,在一些实施例中,方法200、300、400可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由ROM 702和/或通信单元709而被载入和/或安装到设备700上。当计算机程序加载到RAM 703并由CPU701执行时,可以执行上文描述的方法200、300、400的一个或多个步骤。备选地,在其他实施例中,CPU 701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行方法200、300、400。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)等等。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
此外,虽然采用特定次序描绘了各操作,但是这应当理解为要求这样操作以所示出的特定次序或以顺序次序执行,或者要求所有图示的操作应被执行以取得期望的结果。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实现中。相反地,在单个实现的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实现中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。