欢迎光临小豌豆知识网!
当前位置:首页 > 电学技术 > 电通讯技术> 消息推送方法、装置、电视机设备及计算机存储介质独创技术39451字

消息推送方法、装置、电视机设备及计算机存储介质

2021-04-09 00:22:53

消息推送方法、装置、电视机设备及计算机存储介质

  技术领域

  本发明涉及消息推送技术领域,尤其涉及一种消息推送方法、装置、电视机设备及计算机存储介质。

  背景技术

  传统的消息推送分发机制主要利用消息队列中间件将服务端的消息推送给客户端,从而实现消息分发,但传统的消息队列中间件基本没有定时推送功能,无法将消息定时推送给客户端;并且传统的消息队列中间件无法根据实际需求对消息定时推送间隔进行灵活设置,从而使得消息分发功能较为单一,同时消息队列中间件在消息推送过程中没有消息优先处理机制,无法灵活配置消息优先级,大大降低了消息推送分发效率。

  因此,如何灵活配置消息推送分发机制,提升消息推送分发效率,是当前亟待解决的技术问题。

  发明内容

  本发明的主要目的在于提供一种消息推送方法、装置、电视机设备及计算机存储介质,旨在灵活配置消息推送分发机制,提升消息推送分发效率。

  为实现上述目的,本发明实施例提供一种消息推送方法,所述消息推送方法包括:

  获取所有消息内容,并分别获取各消息内容的推送时间点、消息优先级和自增长数字;

  获取当前时间点,并根据各消息内容的推送时间点、消息优先级和自增长数字,生成各消息内容的消息编号;

  根据所述当前时间点和所述各消息编号,生成消息推送队列;

  根据所述消息推送队列,分别推送各消息内容。

  可选地,所述获取所有消息内容,并分别获取各消息内容的推送时间点、消息优先级和自增长数字的步骤包括:

  获取所有消息内容,并根据预设计时器获取所有消息内容的获取顺序;

  提取各消息内容的推送时间点;

  提取各消息内容的实时性信息,并根据各消息内容的实时性信息,生成各消息内容的消息优先级;

  根据所述获取顺序确定各消息内容的自增长数字。

  可选地,所述根据各消息内容的推送时间点、消息优先级和自增长数字,生成各消息内容的消息编号的步骤包括:

  分别提取各消息内容中各推送时间点、消息优先级和自增长数字的编号位;

  按预设编号顺序依次将各推送时间点、消息优先级和自增长数字的编号位进行拼接,以生成各消息内容的消息编号。

  可选地,所述根据所述当前时间点和所述各消息编号,生成消息推送队列的步骤包括:

  分别计算当前时间点与各推送时间点的差值,并将所有差值从小到大进行排序,以生成各消息编号的时间顺序队列;

  获取时间顺序队列中推送时间点相同的各第一消息编号的目标消息优先级,并根据所述时间顺序队列和所述目标消息优先级对各第一消息编号进行排序,以生成各消息编号的优先等级队列;

  获取优先等级队列中推送时间点相同且目标消息优先级相同的各第二消息编号的目标自增长数字,并根据所述优先等级队列和所述目标自增长数字对各第二消息编号进行排序,以生成各消息编号的消息推送队列。

  可选地,所述根据所述消息推送队列,分别推送各消息内容的步骤之后还包括:

  获取当前的系统闲置内存;

  若所述系统闲置内存小于预设内存阈值,则获取所述推送时间点为处于当前时间点预设范围内的所有待筛选消息编号;

  确定所有待筛选消息编号中,消息优先级大于预设优先级的所有目标消息编号;

  将所述各目标消息编号加入预设的闲时推送队列;

  若所述系统闲置内存大于或等于预设内存阈值,则根据所述闲时推送队列的目标消息编号,分别推送各消息内容。

  可选地,所述根据所述消息推送队列,分别推送各消息内容的步骤之后还包括:

  删除所有消息编号和消息内容,以释放系统内存。

  可选地,所述根据所述消息推送队列,分别推送各消息内容的步骤之后还包括:

  分别获取各消息编号对应的消息内容在推送后的消息推送状态;

  若检测到任一消息推送状态为推送失败状态,则再次推送所述推送失败状态对应的目标消息内容,获取各目标消息内容的再次推送状态;

  若检测任一再次推送状态为推送失败状态,则在预设时长后删除所述目标消息内容。

  本发明还提供一种消息推送装置,所述消息推送装置包括:

  获取模块,用于获取所有消息内容,并分别获取各消息内容的推送时间点、消息优先级和自增长数字;

  编号生成模块,用于获取当前时间点,并根据各消息内容的推送时间点、消息优先级和自增长数字,生成各消息内容的消息编号;

  队列生成模块,用于根据所述当前时间点和所述各消息编号,生成消息推送队列;

  推送模块,用于根据所述消息推送队列,分别推送各消息内容。

  可选地,所述获取模块包括:

  获取单元,用于获取所有消息内容,并根据预设计时器获取所有消息内容的获取顺序;

  推送时间点单元,用于提取各消息内容的推送时间点;

  消息优先级单元,用于提取各消息内容的实时性信息,并根据各消息内容的实时性信息,生成各消息内容的消息优先级;

  自增长数字单元,用于根据所述获取顺序确定各消息内容的自增长数字。

  可选地,所述编号生成模块包括:

  第一生成单元,用于根据各消息内容的推送时间点、消息优先级和自增长数字,生成各消息内容的消息编号;

  第二生成单元,用于根据所述当前时间点和所述各消息编号,生成消息推送队列。

  可选地,所述第二生成单元包括:

  时间顺序子单元,用于分别计算当前时间点与各推送时间点的差值,并将所有差值从小到大进行排序,以生成各消息编号的时间顺序队列;

  优先等级子单元,用于获取时间顺序队列中推送时间点相同的各第一消息编号的目标消息优先级,并根据所述时间顺序队列和所述目标消息优先级对各第一消息编号进行排序,以生成各消息编号的优先等级队列;

  推送等级子单元,用于获取优先等级队列中推送时间点相同且目标消息优先级相同的各第二消息编号的目标自增长数字,并根据所述优先等级队列和所述目标自增长数字对各第二消息编号进行排序,以生成各消息编号的消息推送队列。

  可选地,所述消息推送装置还包括:

  内存模块,用于获取当前的系统闲置内存;

  第一判断模块,用于若所述系统闲置内存小于预设内存阈值,则获取所述推送时间点为处于当前时间点预设范围内的所有待筛选消息编号;

  确定模块,用于确定所有待筛选消息编号中,消息优先级大于预设优先级的所有目标消息编号;

  闲时模块,用于将所述各目标消息编号加入预设的闲时推送队列;

  第二判断模块,用于若所述系统闲置内存大于或等于预设内存阈值,则根据所述闲时推送队列的目标消息编号,分别推送各消息内容。

  可选地,所述消息推送装置还包括:

  第一删除模块,用于删除所有消息编号和消息内容,以释放系统内存。

  可选地,所述消息推送装置还包括:

  第一状态模块,用于分别获取各消息编号对应的消息内容在推送后的消息推送状态;

  第二状态模块,用于若检测到任一消息推送状态为推送失败状态,则再次推送所述推送失败状态对应的目标消息内容,获取各目标消息内容的再次推送状态;

  第二删除模块,用于若检测任一再次推送状态为推送失败状态,则在预设时长后删除所述目标消息内容。

  此外,为实现上述目的,本发明还提供一种电视机设备,所述电视机设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的消息推送程序,其中:

  所述消息推送程序被所述处理器执行时实现如上所述的消息推送方法的步骤。

  此外,为实现上述目的,本发明还提供计算机存储介质;

  所述计算机存储介质上存储有消息推送程序,所述消息推送程序被处理器执行时实现如上述的消息推送方法的步骤。

  本发明获取所有消息内容,并分别获取各消息内容的推送时间点、消息优先级和自增长数字;获取当前时间点,并根据各消息内容的推送时间点、消息优先级和自增长数字,生成各消息内容的消息编号;根据所述当前时间点和所述各消息编号,生成消息推送队列;根据所述消息推送队列,分别推送各消息内容。本发明通过对待发送的消息内容进行灵活配置,利用当前时间点与消息编号进行优先级排序,从而生成推送登记表,从而实现消息的定时推送,无需经过设定固定的时间间隔进行推送,解决传统消息推送分发机制的消息推送分发效率低下的技术问题,大大提高了灵活度,大大提升了消息推送分发效率。

  附图说明

  图1为本发明实施例方案涉及的硬件运行环境的电视机设备结构示意图;

  图2为本发明消息推送方法一实施例的流程示意图。

  本发明目的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

  具体实施方式

  应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

  本发明实施例方案的主要思路是:获取所有消息内容,并分别获取各消息内容的推送时间点、消息优先级和自增长数字;获取当前时间点,并根据各消息内容的推送时间点、消息优先级和自增长数字,生成各消息内容的消息编号;根据所述当前时间点和所述各消息编号,生成消息推送队列;根据所述消息推送队列,分别推送各消息内容。本发明通过对待发送的消息内容进行灵活配置,利用当前时间点与消息编号进行优先级排序,从而生成推送登记表,从而实现消息的定时推送,无需经过设定固定的时间间隔进行推送,解决传统消息推送分发机制的消息推送分发效率低下的技术问题,大大提高了灵活度,大大提升了消息推送分发效率。

  本发明实施例考虑到,由于现有技术中,传统的消息队列中间件基本没有定时推送功能,无法将消息定时推送给客户端;并且传统的消息队列中间件无法根据实际需求对消息定时推送间隔进行灵活设置,从而使得消息分发功能较为单一,同时消息队列中间件在消息推送过程中没有消息优先处理机制,无法灵活配置消息优先级,大大降低了消息推送分发效率。

  本发明提供一种解决方案,可以通过对待发送的消息内容进行灵活配置,利用当前时间点与消息编号进行优先级排序,从而生成推送登记表,从而实现消息的定时推送,无需经过设定固定的时间间隔进行推送,解决传统消息推送分发机制的消息推送分发效率低下的技术问题,大大提高了灵活度,大大提升了消息推送分发效率。

  如图1所示,图1是本发明实施例方案涉及的硬件运行环境的电视机设备结构示意图。

  本发明实施例电视机设备可以是PC机或服务器电视机设备。

  如图1所示,该电视机设备可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。

  本领域技术人员可以理解,图1中示出的电视机设备结构并不构成对电视机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

  如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及消息推送程序。

  在图1所示的电视机设备中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的消息推送程序,并执行下述消息推送方法各个实施例中的操作。

  基于上述硬件结构,提出本发明消息推送方法实施例。

  本发明提供一种消息推送方法,在消息推送方法一实施例中,参照图2,所述消息推送方法包括:

  步骤S10,获取所有消息内容,并分别获取各消息内容的推送时间点、消息优先级和自增长数字;

  消息内容指的是服务端从本地数据库或其他服务器数据库获取到的消息,这些消息内容将通过服务器的消息队列中间件推送至客户端,而本实施例是基于服务端的技术方案,在消息队列中间件前设置一个消息定时推送机制,以实现本发明的消息推送过程。所述消息内容可以是实时天气预报,可以是体育快讯,也可以是导航信息等等,不同类型的消息内容具有各自的消息属性,而每条消息内容都有各自对应的推送时间点、消息优先级和自增长数字。

  所述推送时间点指的是当前服务器将消息内容推送出去的时间点,例如定时17点整推送。

  所述消息优先级指的是消息内容的消息紧急等级,本实施例中,可从紧急、重要两个维度来标识消息内容的消息优先级,因此可将消息分为4个等级,用0,1,2表示有优先级的消息,其他数字标示普通消息。数字越小,代表消息的优先级越大,如0表示紧急重要的消息,需要优先推送,3表示普通消息,在资源紧张的时候可以延后推送。。

  所述自增长数字指的是服务器从本地数据库或其他服务器数据库获取到消息内容时,该消息内容的计数顺序,可为服务器提供推送消息内容的推送顺序。服务器每获取一条消息,计数器加1,以时间点为key值,计数器大小为value值,采用key-value的形式生成自增长数字。

  具体地,所述获取所有消息内容,并分别获取各消息内容的推送时间点、消息优先级和自增长数字的步骤包括:

  步骤A1,获取所有消息内容,并根据预设计时器获取所有消息内容的获取顺序;

  步骤A2,提取各消息内容的推送时间点;

  步骤A3,提取各消息内容的实时性信息,并根据各消息内容的实时性信息,生成各消息内容的消息优先级;

  步骤A4,根据所述获取顺序确定各消息内容的自增长数字。

  本实施例中,服务器获取消息内容时,会通过预设计时器计算各个消息内容的获取顺序,例如a消息内容的获取顺序为1,b消息内容的获取顺序为2,以此类推。通过获取顺序可确定各消息内容的自增长数字。同时各个消息内容中保存有各自的推送时间点,如a消息内容推送时间点为上午10点整,b消息内容推送时间点为上午11点整,以此类推。各个消息内容还保存有各自的实时性信息,所述实时性信息指的是消息内容携带的指定当前该消息内容需要在某个时间段内推送出去的指向信息。例如a消息内容实时性信息为2分钟内,代表着a消息内容在生成后2分钟内需要推送出去,否则失去其时效性,以此类推。因此,不同的实时性信息代表着各消息内容的消息优先级,例如实时性信息为10秒钟内代表着对应消息内容的消息优先级为一级;实时性信息为1分钟内代表着对应消息内容的消息优先级为二级等等。可以理解的是,实时性信息范围越小,消息优先级越高。

  步骤S20,获取当前时间点,并根据各消息内容的推送时间点、消息优先级和自增长数字,生成各消息内容的消息编号;

  当前时间点可作为推送时间点的时间参照点,本实施例中,根据当前时间点,各消息内容的的推送时间点、消息优先级和自增长数字,可对所有消息内容进行推送顺序排列,每条消息内容的推送顺序通过先后排序进行整理,从而生成消息推送队列。

  在本实施例中,通过对消息内容的解析,可生成各消息内容对应的消息编号。消息编号指的是消息内容对应的消息id,消息编号与消息内容一一映射,即各个消息内容所对应的消息编号是不会重复的编号。

  具体地,所述根据各消息内容的推送时间点、消息优先级和自增长数字,生成各消息内容的消息编号的步骤包括:

  步骤B1,分别提取各消息内容中各推送时间点、消息优先级和自增长数字的编号位;

  步骤B2,按预设编号顺序依次将各推送时间点、消息优先级和自增长数字的编号位进行拼接,以生成各消息内容的消息编号。

  可理解地,消息编号由推送时间点、消息优先级和自增长数字组成,并且,推送时间点、消息优先级和自增长数字有各自的编号位。例如,消息编号一共有10位,推送时间点、消息优先级和自增长数字均可以消息编号的格式中根据实际需要拥有各自的编号位。在本实施例中,消息编号的格式为:“推送时间点-消息优先级-自增长数字”,其中消息编号由20位数字组成,推送时间点的编号位占前10位,消息优先级的编号位占中间1位,自增长数字的编号位占最后9位。消息编号的预设编号顺序格式如下:

  

  本实施例通过先提取出各推送时间点、消息优先级和自增长数字的编号位,再按照编号顺序将其进行拼接,从而生成消息编号。如,推送时间点的编号位为0101010101,消息优先级的编号位为1,自增长数字的编号位为101010101,则按照消息编号的预设编号顺序拼接获取的消息编号为01010101011101010101。

  不同的消息编号的推送顺序是不一致的,在本实施例中通过当前时间点进行推送顺序的确定。消息推送过程需要确定消息的推送时间点,不同消息的重要紧急性确定了在同样时间点内的消息优先级,而自增长数字确定了相同消息优先级的情况下的推送顺序。通过以上三个因子,即可确定所有消息编号的推送顺序。

  服务器按照特定的规则给每条消息内容分配一个不会重复的编号,规则如下:以消息编号作为key值,消息内容作为value值,以key-value的形式进行保存。采用ssdb作为消息的存储介质,ssdb是一个类redis的高性能nosql数据库,具有存储TB级数据的能力。

  步骤S30,根据所述当前时间点和所述各消息编号,生成消息推送队列;

  本实施例中,当前时间点是各消息编号推送顺序的重要计算因子,通过当前时间点和各消息编号,可计算生成各消息编号的消息推送队列。

  具体地,所述根据所述当前时间点和所述各消息编号,生成消息推送队列的步骤包括:

  步骤B21,分别计算当前时间点与各推送时间点的差值,并将所有差值从小到大进行排序,以生成各消息编号的时间顺序队列;

  步骤B22,获取时间顺序队列中推送时间点相同的各第一消息编号的目标消息优先级,并根据所述时间顺序队列和所述目标消息优先级对各第一消息编号进行排序,以生成各消息编号的优先等级队列;

  步骤B23,获取优先等级队列中推送时间点相同且目标消息优先级相同的各第二消息编号的目标自增长数字,并根据所述优先等级队列和所述目标自增长数字对各第二消息编号进行排序,以生成各消息编号的消息推送队列。

  当前时间点和推送时间点的差值代表着该消息编号对应的消息内容当前距离推送时间的紧迫性。将所有差值从小到大进行排序,即确定各消息编号的推送顺序,得到时间顺序队列。

  所述时间顺序队列是根据时间紧迫性进行排序,但是在同一推送时间点的消息编号可能有多条,此时需要按照消息优先级对同一推送时间点的多条消息编号进行排序。即获取到时间顺序队列中推送时间点相同的各第一消息编号的目标消息优先级,根据时间顺序队列和目标消息优先级对第一消息编号进行排序,生成优先等级队列。例如,获取到时间顺序队列中推送时间点为5点的第一消息编号有3条:a1、a2、a3,对应地,a1的目标优先级为0、a2的目标优先级为2、a3的目标优先级为1;推送时间点为6点的第一消息编号由2条:b1、b2,对应地,b1的目标优先级为3、b2的目标优先级为1。根据目标优先级从小到大对推送时间点为5点的第一消息编号进行排序,得到推送时间点为5点的第一消息编号的顺序为a1、a3、a2;推送时间点为6点的第一消息编号进行排序,得到推送时间点为6点的第一消息编号的顺序为b2、b1。

  同时时间顺序队列中其他不存在同一推送时间点的其他消息编号的顺序不发生改变,并与所有第一消息编号进行排序,从而获得各消息编号的优先等级队列。也就是说,本实施例中,将时间顺序队列中根据推送时间点分为多个编号集合,各集合中为相同推送时间点的第一消息编号。对各集合中的第一消息编号按照消息优先级分别进行排序,消息优先级大的排在前面,反之排在后面,从而整理各集合中第一消息编号的顺序。整理完成之后,再整合进时间顺序队列中,由于时间顺序队列按照推送时间点排序,因此,同一集合中的消息编号通过内部排序确定了推送顺序,而不同集合则依旧按照推送时间点进行排序,不存在相同推送时间点的消息编号则排列顺序不发生改变,进而生成优先等级队列,即基于消息优先级对时间顺序队列进行整理,生成优先等级队列。

  进一步地,所述第二消息编号指的是优先等级队列中,相同推送时间点且消息优先级一致的消息编号,第二消息编号可能存在多个,因此在优先等级队列的基础上,需要通过自增长数字对第二消息编号进行进一步整理。获取第二消息编号的目标自增长数字,假设,第二消息编号有3条:c1、c2、c3,对应地,c1的目标自增长数字为000F1、c2的目标自增长数字为000F3、c3的目标自增长数字为000F2。根据目标自增长数字从小到大对第二消息编号进行排序,得到第二消息编号的顺序为c1、c3、c2。可理解地,若第二消息编号中存在不同推送时间点的消息编号,则根据不同推送时间点分为多个集合,并针对每一个集合进行排序,其原理与生成优先等级队列相同,从而生成推送等级队列,在此不做赘述。

  例如,5点整的消息编号和6点整的消息编号的推送顺序不一样,5点整的消息将先推送,但是5点整可能有成千上万的消息,需要区分这些消息中哪些消息是重要紧急的,哪些是非紧急的,因此需要通过消息优先级进行区分。由于消息编号的样本量庞大,因此可能会存在推送时间点和消息优先级完全一样的消息编号,此时则需要对这些消息编号进行分别推送,而自增长数字是服务器在获取这些消息编号时计数器的技术顺序。例如服务器在拉取所有消息编号时,通过计时器标记各个消息编号的获取顺序,获取到消息编号a的获取顺序是0007,获取到消息编号b的获取顺序是0009,并且a和b的推送时间点和消息优先级都一样,那么通过获取顺序,即可确定a和b的推送顺序。

  通过以上推送时间点、推送优先级和自增长数字三个属性的比较区分,可获得每隔消息编号的推送顺序,将这个推送顺序整理成推送等级队列。

  步骤S40,根据所述消息推送队列,分别推送各消息内容。

  消息推送队列中将各消息内容进行排序后,即确定了各消息内容的推送顺序。服务器从消息推送队列中按顺序获取到各消息内容,并将各消息内容进行分别推送。具体地,服务器一次性拉去大量的消息内容,当检测当前时间点达到推送时间点时,将对应的消息内容推送至客户端,从而完成各消息内容的信息分发推送。

  进一步地,若消息推送队列中以消息编号进行排列,则通过消息编号和消息内容的映射关系,获取到各个消息编号对应的消息内容。根据推送等级队列将各个消息编号对应的消息内容依次推送。具体地,服务器一次性拉取大量的消息编号,当检测当前时间点达到推送时间点时,服务器将消息编号对应的消息内容推送至客户端,从而完成各消息内容的信息分发推送。

  更进一步地,所述根据所述消息推送队列,分别推送各消息内容的步骤之后还包括:

  步骤a,删除所有消息编号和消息内容,以释放系统内存。

  消息编号和消息内容在完成发送之后,系统将对消息编号和消息内容进行删除,以避免占用当前系统的内容资源,从而释放系统内存。

  本发明获取所有消息内容,并分别获取各消息内容的推送时间点、消息优先级和自增长数字;获取当前时间点,并根据各消息内容的推送时间点、消息优先级和自增长数字,生成各消息内容的消息编号;根据所述当前时间点和所述各消息编号,生成消息推送队列;根据所述消息推送队列,分别推送各消息内容。本发明通过对待发送的消息内容进行灵活配置,利用当前时间点与消息编号进行优先级排序,从而生成推送登记表,从而实现消息的定时推送,无需经过设定固定的时间间隔进行推送,解决传统消息推送分发机制的消息推送分发效率低下的技术问题,大大提高了灵活度,大大提升了消息推送分发效率。

  进一步地,基于第一实施例,提出本发明消息推送方法的第二实施例,在该实施例中,所述根据所述消息推送队列,分别推送各消息内容的步骤之后还包括:

  步骤b,获取当前的系统闲置内存;

  步骤c,若所述系统闲置内存小于预设内存阈值,则获取所述推送时间点为处于当前时间点预设范围内的所有待筛选消息编号;

  步骤d,确定所有待筛选消息编号中,消息优先级大于预设优先级的所有目标消息编号;

  步骤e,将所述各目标消息编号加入预设的闲时推送队列;

  步骤f,若所述系统闲置内存大于或等于预设内存阈值,则根据所述闲时推送队列的目标消息编号,分别推送各消息内容。

  在推送消息内容的过程中,若系统闲置内存不足时,会造成服务器无法及时推送消息内容,从而造成服务器无法定时推送消息,降低消息推送效率。因此需要获取当前的系统闲置内存,并在系统闲置内存小于预设内存阈值时,获取到推送时间点在当前时间点预设范围内的所有待筛选消息编号,并确定其中消息优先级大于预设优先级的所有目标消息编号,将其加入闲时推送队列中,以在系统闲置内存大于预设内存阈值时,推送闲时推送队列中的所有消息内容。

  例如,定位出推送时间点处于当前时间点往后3分钟的所有待筛选消息编号,并将待筛选消息编号中消息优先级大于2的非紧急消息编号,将非紧急消息编号加入到闲时发送列表中,从而缓解当前系统运行内存不足的技术问题。例如当前有1千万条消息编号正常排队等待系统推送,但是由于系统闲置内存不足,导致系统内存不足,不足以支撑高性能并发进程的继续执行。此时,系统将通过筛选机制,将非紧急的消息优先级大于2的目标消息编号加入闲时发送列表,即当前消息优先级为3的目标消息编号编号暂时不进行发送,即使到达了推送时间点也不做信息推送处理,而是等待系统闲置内存大于预设内存阈值后,再进行信息推送,从而缓解系统内存不足的技术问题。

  进一步地,基于第一实施例,提出本发明消息推送方法的第三实施例,在该实施例中,所述根据所述消息推送队列,分别推送各消息内容的步骤之后还包括:

  步骤g,分别获取各消息编号对应的消息内容在推送后的消息推送状态;

  步骤h,若检测到任一消息推送状态为推送失败状态,则再次推送所述推送失败状态对应的目标消息内容,获取各目标消息内容的再次推送状态;

  步骤i,若检测任一再次推送状态为推送失败状态,则在预设时长后删除所述目标消息内容。

  各个消息内容在完成消息推送之后,会得到一个消息推送状态,该消息推送状态代表着当前消息内容是否成功推送。由于本实施例中的消息推送为多线程运行,因此可能在短时间内生成大量消息推送状态。

  若在各消息内容的消息推送状态中检测到任意一个消息推送状态为推送失败状态,则系统将再次推送该推送失败状态对应的目标消息内容。

  可以理解的是,保存在服务器中的消息编号和消息内容若未能在推送时间点推送出去,则会滞留服务器中,为保障消息内容能够正常发送出去,服务器将获取到由于异常情况(如系统关机,宕机,进程中断)导致无法正常推送的未推送消息,并将未推送消息加入到推送等级队列的最前沿进行再次推送,从而避免推送失败状态的消息滞留在服务器而影响到其他消息内容的正常消息推送步骤,进而降低消息推送效率。

  所述目标消息内容为再次推送的消息内容,当服务器对目标消息内容进行再次推送后,将生成该目标消息内容的再次推送状态。由于本实施例中的消息推送为多线程运行,因此可能在短时间内生成大量再次推送状态。

  若检测到任一再次推送状态为推送失败状态,则证明该目标消息内容未能在推送时间点推送出去,且滞留在系统内存中且无法推送出去。随着滞留的目标消息内容越来越多,会对服务器的正常运行造成影响。因此系统中设置有一个预设时长,该预设时长代表着目标消息内容的过期时间,若滞留的目标消息内容在预设时长后仍未推送出去,那么服务器将对这些滞留的目标内容消息进行删除。例如,天气预报信息,路灯状态信息在1天内无法及时发送出去,滞留在系统中,则需要进行删除,避免推送失败状态的消息滞留在服务器而影响到其他消息内容的正常消息推送步骤,进而降低消息推送效率。

  此外,本发明实施例还提出一种消息推送装置,所述消息推送装置包括:

  获取模块,用于获取所有消息内容,并分别获取各消息内容的推送时间点、消息优先级和自增长数字;

  编号生成模块,用于获取当前时间点,并根据各消息内容的推送时间点、消息优先级和自增长数字,生成各消息内容的消息编号;

  队列生成模块,用于根据所述当前时间点和所述各消息编号,生成消息推送队列;

  推送模块,用于根据所述消息推送队列,分别推送各消息内容。

  可选地,所述获取模块包括:

  获取单元,用于获取所有消息内容,并根据预设计时器获取所有消息内容的获取顺序;

  推送时间点单元,用于提取各消息内容的推送时间点;

  消息优先级单元,用于提取各消息内容的实时性信息,并根据各消息内容的实时性信息,生成各消息内容的消息优先级;

  自增长数字单元,用于根据所述获取顺序确定各消息内容的自增长数字。

  可选地,所述编号生成模块包括:

  第一生成单元,用于根据各消息内容的推送时间点、消息优先级和自增长数字,生成各消息内容的消息编号;

  第二生成单元,用于根据所述当前时间点和所述各消息编号,生成消息推送队列。

  可选地,所述第二生成单元包括:

  时间顺序子单元,用于分别计算当前时间点与各推送时间点的差值,并将所有差值从小到大进行排序,以生成各消息编号的时间顺序队列;

  优先等级子单元,用于获取时间顺序队列中推送时间点相同的各第一消息编号的目标消息优先级,并根据所述时间顺序队列和所述目标消息优先级对各第一消息编号进行排序,以生成各消息编号的优先等级队列;

  推送等级子单元,用于获取优先等级队列中推送时间点相同且目标消息优先级相同的各第二消息编号的目标自增长数字,并根据所述优先等级队列和所述目标自增长数字对各第二消息编号进行排序,以生成各消息编号的消息推送队列。

  可选地,所述消息推送装置还包括:

  内存模块,用于获取当前的系统闲置内存;

  第一判断模块,用于若所述系统闲置内存小于预设内存阈值,则获取所述推送时间点为处于当前时间点预设范围内的所有待筛选消息编号;

  确定模块,用于确定所有待筛选消息编号中,消息优先级大于预设优先级的所有目标消息编号;

  闲时模块,用于将所述各目标消息编号加入预设的闲时推送队列;

  第二判断模块,用于若所述系统闲置内存大于或等于预设内存阈值,则根据所述闲时推送队列的目标消息编号,分别推送各消息内容。

  可选地,所述消息推送装置还包括:

  第一删除模块,用于删除所有消息编号和消息内容,以释放系统内存。

  可选地,所述消息推送装置还包括:

  第一状态模块,用于分别获取各消息编号对应的消息内容在推送后的消息推送状态;

  第二状态模块,用于若检测到任一消息推送状态为推送失败状态,则再次推送所述推送失败状态对应的目标消息内容,获取各目标消息内容的再次推送状态;

  第二删除模块,用于若检测任一再次推送状态为推送失败状态,则在预设时长后删除所述目标消息内容。

  此外,本发明实施例还提出一种电视机设备,电视机设备包括:存储器109、处理器110及存储在存储器109上并可在处理器110上运行的消息推送程序,所述消息推送程序被处理器110执行时实现上述的消息推送方法各实施例的步骤。

  此外,本发明还提供了一种计算机存储介质,所述计算机存储介质存储有消息推送程序,所述消息推送程序还可被处理器执行以用于实现上述消息推送方法各实施例的步骤。

  本发明电视机设备及计算机存储介质的具体实施方式的拓展内容与上述消息推送方法各实施例基本相同,在此不做赘述。

  需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

  上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

  通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

  上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。

《消息推送方法、装置、电视机设备及计算机存储介质.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)