消息推送装置及方法

xiaoxiao2021-2-23  123

消息推送装置及方法
【技术领域】
[0001 ]本发明涉及通信技术领域,尤其涉及一种消息推送装置及方法。
【背景技术】
[0002]消息推送功能是通信领域中一个不可或缺的基础功能。一般都是由服务器向终端推送消息,可以让用户知晓最新最热的动态消息。而现在的消息推送方式,都是服务器端在检测到消息推送指令时,获取消息并将获取的消息推送给终端,也就是说服务器采用的是即时推送消息的方式,若是一天中同一个消息需要推送多次,需要人为对每个时间进行设置,如一天中需要推送3次,就要设置3个推送时间点,显然,这种消息的推送方式不够灵活。

【发明内容】

[0003]本发明的主要目的在于提出一种消息推送装置及方法,旨在解决消息的推送方式不够灵活的技术问题。
[0004]为实现上述目的,本发明提供的一种消息推送装置,所述消息推送装置包括:
[0005]生成模块,用于根据预设的待推送消息对应的起始推送时间点以及推送周期,生成所述待推送信息对应的各个推送时间点;
[0006]存储模块,用于将所述待推送消息与生成的各个推送时间点关联存储;
[0007]推送模块,用于按照推送时间点的先后顺序依次推送所述待推送消息。
[0008]可选地,所述推送模块包括:
[0009]获取单元,用于获取各个推送时间点中距离当前时间点的时间间隔小于第一预设时间间隔的各个推送时间点;
[0010]存入单元,用于按照获取的各个推送时间点的先后顺序将所述待推送消息依次存入消息列队中;
[0011]推送单元,用于在所述消息列队中的待推送消息的推送时间点距离当前时间点的时间间隔小于第二预设时间间隔时,将所述消息列队中的所述待推送消息推送至终端中。
[0012]可选地,所述消息推送装置还包括:
[0013]更新模块,用于若所述消息列队中的所述待推送消息推送失败,则对推送失败的所述待推送消息增加预设时间段以更新所述推送失败的所述待推送消息的推送时间点;
[0014]插入模块,用于根据更新后的所述推送时间点将所述推送失败的所述待推送消息插入所述消息列队中。
[0015]可选地,所述消息推送装置还包括:
[0016]第一发送模块,用于在所述推送失败的所述待推送消息推送失败的次数达到预设次数时,向所述终端发送提示信息。
[0017]可选地,所述消息推送装置还包括:
[0018]第二发送模块,用于在推送消息过程中,每隔第三预设时间间隔向预设的监控终端发送已推送的消息对应的关联信息,以供所述监控终端显示所述已推送的消息对应的关联信息。
[0019]此外,为实现上述目的,本发明还提出一种消息推送方法,所述消息推送方法包括以下步骤:
[0020]服务器根据预设的待推送消息对应的起始推送时间点以及推送周期,生成所述待推送信息对应的各个推送时间点;
[0021]将所述待推送消息与生成的各个推送时间点关联存储;
[0022]按照推送时间点的先后顺序依次推送所述待推送消息。
[0023]可选地,所述按照推送时间点的先后顺序依次推送所述待推送消息的步骤包括:
[0024]所述服务器获取各个推送时间点中距离当前时间点的时间间隔小于第一预设时间间隔的各个推送时间点;
[0025]按照获取的各个推送时间点的先后顺序将所述待推送消息依次存入消息列队中;
[0026]在所述消息列队中的待推送消息的推送时间点距离当前时间点的时间间隔小于第二预设时间间隔时,将所述消息列队中的所述待推送消息推送至终端中。
[0027]可选地,所述将所述消息列队中的所述待推送消息推送至终端中的步骤之后,所述消息推送方法包括:
[0028]若所述消息列队中的所述待推送消息推送失败,则所述服务器对推送失败的所述待推送消息增加预设时间段以更新所述推送失败的所述待推送消息的推送时间点;
[0029]根据更新后的所述推送时间点将所述推送失败的所述待推送消息插入所述消息列队中。
[0030]可选地,所述根据更新后的所述推送时间点将所述推送失败的所述待推送消息插入所述消息列队中的步骤之后,所述消息推送方法还包括:
[0031]在所述推送失败的所述待推送消息推送失败的次数达到预设次数时,所述服务器向所述终端发送提示信息。
[0032]可选地,所述消息推送方法还包括:
[0033]所述服务器在推送消息过程中,每隔第三预设时间间隔向预设的监控终端发送已推送的消息对应的关联信息,以供所述监控终端显示所述已推送的消息对应的关联信息。
[0034]本发明提出的消息推送装置及方法,生成模块通过待推送消息对应的起始推送时间以及推送周期,生成所述待推送信息对应的各个推送时间点,存储模块将所述待推送消息与生成的各个推送时间点关联存储,推送模块按照推送时间点的先后顺序依次推送所述待推送消息,而不是当待推送消息在同一天需要推送多次时,需要人为配置多个推送时间点,本发明只要获取待推送消息的起始推送时间点以及推送周期,即可获得对应的各个推送时间点,然后按照推送时间点的先后顺序依次推送所述待推送消息,从而提高了消息推送的灵活性。
【附图说明】
[0035]图1为本发明服务器与终端通信过程的示意图;
[0036]图2为实现本发明各个实施例一个可选的服务器的硬件结构示意图;
[0037]图3为本发明消息推送装置第一实施例的功能模块示意图;
[0038]图4为本发明消息推送装置第二实施例的功能模块示意图;
[0039]图5为本发明消息推送装置第三实施例的功能模块示意图;
[0040]图6为本发明消息推送方法第一实施例的流程示意图;
[0041 ]图7为本发明消息推送方法第二实施例的流程示意图;
[0042]图8为本发明消息推送方法第三实施例的流程示意图。
[0043]本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
【具体实施方式】
[0044]应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0045]参照图1,图1为本发明服务器与终端通信过程的示意图。
[0046]在图1中,服务器通过网络将待推送消息推送给终端,所述终端包括手机、PAD或PC
侧等终端。
[0047]在图1中,服务器根据预设的待推送消息对应的起始推送时间点以及推送周期,先生成所述待推送信息对应的各个推送时间点,然后按照推送时间点的先后顺序依次推送所述待推送消息,将所述待推送消息推送至终端中,所述终端包括手机、PAD或PC侧,在所述待推送消息推送到终端时,用户基于所述终端查看推送成功的消息。在本实施例中,所述待推送消息为推送类通知消息,如新闻应用推送的新闻消息、音视频应用推送的更新内容、或者是各种应用对应的安装包消息,因此,在所述服务器通过网络将待推送消息推送给终端的过程中,消息的推送只能是单向推送,即只能由服务器推送至终端中,而无法由终端推送至所述服务器中。
[0048]参照图2,图2为实现本发明各个实施例一个可选的服务器的硬件结构示意图。
[0049]在图2中,服务器包括处理器1001、存储器1002、消息列队1003以及网络接口 1004等硬件,首先,服务器中的所述处理器1001根据待推送消息对应的起始推送时间点以及推送周期,生成所述待推送信息对应的各个推送时间点,然后将生成的各个推送时间点与所述待推送消息关联存储到所述存储器1002中,并在所述消息列队1003中按照推送时间点的先后顺序依次存入各个 待推送消息,在满足消息推送条件时,如所述消息列队1003中的待推送消息的推送时间点距离当前时间点的时间间隔小于第二预设时间间隔时,或者是所述消息列队1003中的待推送消息的推送时间点与当前时间点匹配时,将所述消息列队1003中的待推送消息通过所述网络接口 1004推送至终端中,由图1可知,所述终端可为手机、PAD或PC侧等终端。在所述消息列队1003中的所述待推送消息推送失败时,所述处理器1001对推送失败的所述待推送消息增加预设时间段以更新所述推送失败的所述待推送消息的推送时间点,并根据更新后的所述推送时间点将所述推送失败的所述待推送消息插入所述消息列队1003中。进一步地,在所述推送失败的所述待推送消息推送失败的次数达到预设次数时,所述处理器1001通过所述网络接口 1004向所述终端发送提示信息。而在所述处理器1001通过所述网络接口 1004向终端推送消息过程中,通过所述网络接口 1004每隔第三预设时间间隔向预设的监控终端发送已推送的消息对应的关联信息,以供所述监控终端显示所述已推送的消息对应的关联信息。
[0050]基于上述服务器与终端通信过程的示意图、服务器的硬件结构示意图,提出本发明消息推送装置各个实施例。
[0051]参照图3,图3为本发明消息推送装置第一实施例的功能模块示意图。
[0052]需要强调的是,对本领域的技术人员来说,图3所示功能模块图仅仅是一个较佳实施例的示例图,本领域的技术人员围绕图3所示的消息推送装置的功能模块,可轻易进行新的功能模块的补充;各功能模块的名称是自定义名称,仅用于辅助理解该消息推送装置的各个程序功能块,不用于限定本发明的技术方案,本发明技术方案的核心是,各自定义名称的功能模块所要达成的功能。
[0053]本实施例提出一种消息推送装置,所述消息推送装置包括:
[0054]生成模块10,用于根据预设的待推送消息对应的起始推送时间点以及推送周期,生成所述待推送信息对应的各个推送时间点;
[0055]在本实施例中,先获取待推送消息,所述获取待推送消息可以获取一个待推送消息,也可以获取多个待推送消息,当获取的待推送消息只有一个待推送消息时,先确定所述待推送消息的起始推送时间点以及推送周期,所述推送时间点是包括日期和时间的时间点,比如10号8:00am,所述推送周期的长短可以根据具体情况进行设置,可以是以每天12小时且推送10天作为一个周期,也可以是以每天24小时且推送7天作为一个周期,生成模块10根据起始推送时间点以及推送周期,即可生成所述待推送信息对应的各个推送时间点,例如,获取的待推送消息的起始推送时间点是8:00am,推送周期是每天12小时且推送10天,所述生成模块10即可生成20个推送时间点,分别是10天中的8:00am和8:00pm。同理,当获取的待推送消息有多个待推送消息时,分别获取每个待推送消息对应的起始推送时间点以及推送周期,然后根据各个待推送消息对应的起始推送时间点以及推送周期,所述生成模块10即可生成各个待推送信息对应的各个推送时间点,例如,获取的两个待推送消息的起始推送时间点分别是8:00am和10:00am,推送周期是每天24小时并且推送7天,所述生成模块10即可生成每个待推送消息的7个推送时间点,分别是7天中的8:00am和10:00am。
[0056]存储模块20,用于将所述待推送消息与生成的各个推送时间点关联存储;
[0057]在本实施例中,在所述生成模块10生成所述待推送信息对应的各个推送时间点后,存储模块20将所述待推送消息与生成的各个推送时间点关联存储,所述存储模块20将所述待推送消息与生成的各个推送时间点关联存储的方式为:先建立所述待推送消息与生成的各个待推送消息的关联关系,然后根据建立的所述关联关系将所述待推送消息与生成的各个推送时间点存储到预设的存储空间,所述存储空间包括MongoDB(分布式文档存储数据库)、缓存或闪存等等,也就是说,在所述存储空间中,所述待推送消息对应着各个推送时间点,相当于是所述存储模块20存储待推送消息时,记录所述待推送消息的标识信息,然后将所述生成模块10生成的各个推送时间点存储到所述存储空间时,对各个推送时间点也记录所述待推送消息的标识信息,以建立所述待推送消息与生成的各个待推送消息的关联关系。或者是,所述存储模块20存储待推送消息时,在所述待推送消息中设置一个标志位如标志位1,在存储所述生成模块10生成的各个推送时间点时,对各个推送时间点也设置所述标志位1,以建立所述待推送消息与生成的各个待推送消息的关联关系。本实施例中,通过预存一个待推送消息以及各个推送时间点,可以减小存储空间中的存储容量,从而提高了服务器的运行效率。
[0058]可以理解的是,所述存储模块20将所述待推送消息与所述生成模块10生成的各个推送时间点关联存储时,也可先确定所述生成模块10生成的各个推送时间点对应的个数,根据确定的个数相应生成所述个数对应的各个待推送消息,并将生成的各个待推送消息与各个推送时间点关联存储,即每个待推送消息对应一个推送时间点,此时,存储的各个待推送消息中,只是推送时间点不同,其它内容都是都相同。
[0059]推送模块30,用于按照推送时间点的先后顺序依次推送所述待推送消息。
[0060]在本实施例中,所述推送模块30按照推送时间点的先后顺序依次推送所述待推送消息的实施方式包括:
[0061]1)方式一、所述存储模块20将所述待推送消息与生成的各个推送时间点关联存储后,推送模块30按照各个推送时间点的先后顺序排列各个推送时间点,并在第一个推送时间点与当前时间点匹配时,将所述待推送消息推送给终端。
[0062]2)方式二、所述存储模块20将所述待推送消息与生成的各个推送时间点关联存储后,在所述各个推送时间点中有推送时间点与当前时间点匹配时,所述推送模块3将所述待推送消息推送给终端。
[0063]3)方式二、所述存储模块20将所述待推送消息与生成的各个推送时间点关联存储后,按照各个推送时间点的先后顺序将所述待推送消息依次存入预设的消息列队中,并在所述消息列队中的第一个待推送消息的推送时间点与当前时间点匹配时,所述推送模块30将所述第一个待推送消息推送至终端中。
[0064]4)方式四、为了提高消息推送的灵活性,所述推送模块30包括:
[0065]获取单元,用于获取各个推送时间点中距离当前时间点的时间间隔小于第一预设时间间隔的各个推送时间点;
[0066]存入单元,用于按照获取的各个推送时间点的先后顺序将所述待推送消息依次存入消息列队中;
[0067]推送单元,用于在所述消息列队中的待推送消息的推送时间点距离当前时间点的时间间隔小于第二预设时间间隔时,将所述消息列队中的所述待推送消息推送至终端中。
[0068]在本实施例中,获取单元获取各个推送时间点中距离当前时间点的时间间隔小于第一预设时间间隔的各个推送时间点,然后存入单元按照获取的各个推送时间点的先后顺序将所述待推送消息依次存入消息列队中,即所述获取单元按照所述获取的各个推送时间点获取相应次数的待推送消息,所述推送单元将获取的待推送消息依次存入消息列队中。相当于每隔第一预设时间间隔调用一次生产线程,如每隔5秒启动一次生产线程,并通过所述生产线程获取未来5秒需要推送的待推送消息,然后将获取的各个待推送消息按照推送时间点的先后顺序依次存入消息列队中。本实施例通过设置第一预设时间间隔,使得所述获取单元每次只要获取存储的各个待推送消息中推送时间点距离当前时间点的时间间隔小于第一预设时间间隔的各个待推送消息即可,而不需要获取全部的待推送消息,实现了对即将推送的消息才放入消息列队中,而不需要放入全部的待推送消息,减小了消息列队的负担,提高了消息推送的效率。而在所 述消息列队中的待推送消息的推送时间点距离当前时间点的时间间隔小于第二预设时间间隔时,所述推送单元将所述消息列队中的所述待推送消息推送至终端中。相当于所述推送单元每隔第二预设时间间隔调用一次任务线程,如每隔2秒启动一次任务线程,并通过所述任务线程将所述消息队列中未来2秒需要发送的所述待推送消息推送到终端中。本实施例通过设置第二预设时间间隔,使得所述消息列队的所述待推送消息的推送时间点距离当前时间点的时间间隔小于第二预设时间间隔时,所述推送单元才将所述消息列队中的所述待推送消息推送至终端中,特别是当消息列队中存储的待推送消息包括多个,且各个待推送消息的推送时间点仅相差几秒时,通过事先设置第二预设时间间隔,提前对待推送的消息进行排序并发送,不会造成推送时间点到达,由于待推送的消息过多,而导致消息推送延迟的情况,本实施例提高了消息推送的效率。
[0069]本发明提出的消息推送装置,生成模块通过待推送消息对应的起始推送时间以及推送周期,生成所述待推送信息对应的各个推送时间点,存储模块将所述待推送消息与生成的各个推送时间点关联存储,推送模块按照推送时间点的先后顺序依次推送所述待推送消息,而不是当待推送消息在同一天需要推送多次时,需要人为配置多个推送时间点,本发明只要获取待推送消息的起始推送时间点以及推送周期,即可获得对应的各个推送时间点,然后按照推送时间点的先后顺序依次推送所述待推送消息,从而提高了消息推送的灵活性。
[0070]进一步地,为了提高消息推送的灵活性,参照图4,基于第一实施例提出本发明消息推送装置的第二实施例,在本实施例中,所述消息推送装置还包括:
[0071 ]更新模块40,用于若所述消息列队中的所述待推送消息推送失败,则对推送失败的所述待推送消息增加预设时间段以更新所述推送失败的所述待推送消息的推送时间点;
[0072]插入模块50,用于根据更新后的所述推送时间点将所述推送失败的所述待推送消息插入所述消息列队中。
[0073]在本实施例中,若所述消息列队中的所述待推送消息推送失败,则更新模块40对所述推送失败的所述待推送消息增加预设时间段以更新所述推送失败的所述待推送消息的推送时间点,即在所述推送失败的所述待推送消息对应的推送时间点中增加预设的时间段,使得所述推送失败的所述待推送消息对应的推送时间点延后了,然后插入模块50根据更新后的所述推送时间点将所述推送失败的所述待推送消息插入所述消息列队中,即所述插入模块50将所述更新模块40更新了推送时间点的所述待推送消息插入所述消息列队中,在本实施例中,为了提高消息推送的智能性,所述服务器将更新后的推送时间点与消息列队中的其它各个待推送消息对应的推送时间点进行比对,以确定更新了推送时间点的所述待推送消息与其它各个待推送消息的推送时间点的先后顺序,并按照推送时间点的先后顺序重新排列更新了推送时间点的所述待推送消息和其它各个待推送消息,使得推送时间点靠前的待推送消息排在前面,推送时间点靠后的待推送消息排在后面。例如,消息列队中有4个待推送消息,4个推送时间点分别为8:00am、8:05am、8:10am和8:15am,在第一待推送消息推送失败时,将所述第一待推送消息的推送时间点增加预设的时间间隔如6min,即可知道所述第一待推送消息更新后的推送时间点为8:06am,因此,将更新后的第一待推送消息插入所述消息列队时,是插入到8:05am和8:10am之间,使得所述消息列队中的各个待推送消息的排列顺序为8:05am、8:06am、8:10am和8:15am。
[0074]本实施例将推送失败的消息重新存入消息列队中,使得推送失败的消息再次进行推送,避免了由于网速中断、或者是服务器出现暂时性故障时,而导致的消息推送失败,本实施例提高了消息推送的灵活性。
[0075]进一步地,为了提高消息推送的智能性,参照图5,基于第二实施例提出本发明消息推送装置的第三实施例,在本实施例中,所述消息推送装置还包括:
[0076]第一发送模块60,用于在所述推送失败的所述待推送消息推送失败的次数达到预设次数时,向所述终端发送提示信息。
[0077]在本实施例中,事先设置同一个消息失败可重复次数,即同一个消息推送失败的次数对应的预设次数,例如,将同一个消息可最大推送失败设置为3次,当同一个消息推送失败次数超过3次,则抛弃该消息,不再继续推送,也就是在所述推送失败的所述待推送消息推送失败的次数达到预设次数如达到3次时,不再将所述推送失败的所述待推送消息插入列队中,此时,第一发送模块60向所述终端发送提示信息,所述第一发送模块60向所述终端发送提示信息包括:发送预设的短信到所述终端中,或者是发送预设的邮件到预设的邮箱所在终端中。
[0078]本实施例中,在所述推送失败的所述待推送消息推送失败的次数达到预设次数时,向所述终端发送提示信息,使得终端可得知消息推送失败的情况,提高了消息推送的智能性。
[0079]进一步地,为了提高消息推送的灵活性,基于第一、第二、第三实施例提出本发明消息推送装置的第四实施例,在本实施例中,所述消息推送装置还包括:
[0080]第二发送模块,用于在推送消息过程中,每隔第三预设时间间隔向预设的监控终端发送已推送的消息对应的关联信息,以供所述监控终端显示所述已推送的消息对应的关联信息。
[0081]在本实施例中,第二发送模块在推送消息过程中,每隔第三预设时间间隔向预设的监控终端发送已推送的消息对应的关联信息,以供所述监控终端显示所述已推送的消息对应的关联信息,所述关联信息包括已推送的消息的名称、已推送的消息的推送时间、已推送的消息的推送失败次数、失败原因等等,本实施例中,通过每隔第三预设时间间隔向预设的监控终端发送已推送的消息对应的关联信息,使得所述监控终端可每隔第三预设时间间隔刷新所已推送的消息对应的关联信息,如每5秒在监控界面中对已推送的消息对应的关联信息进行刷新,实现了对消息推送情况的实时监测。
[0082]本发明进一步提供一种消息推送方法。
[0083]参照图6,图6为本发明消息推送方法第一实施例的流程示意图。
[0084]本实施例提出一种消息推送方法,所述消息推送方法包括:
[0085]步骤S10,服务器根据预设的待推送消息对应的起始推送时间点以及推送周期,生成所述待推送信息对应的各个推送时间点;
[0086]在本实施例中,所述服务器先获取待推送消息,所述获取待推送消息可以获取一个待推送消息,也可以获取多个待推送消息,当获取的待推送消息只有一个待推送消息时,先确定所述待推送消息的起始推送时间点以及推送周期,所述推送时间点是包括日期和时间的时间点,比如10号8:00am,所述推送周期的长短可以根据具体情况进行设置,可以是以每天12小时且推送10天作为一个周期,也可以是以每天24小时且推送7天作为一个周期,根据起始推送时间点以及推送周期,即可生成所述待推送信息对应的各个推送时间点,例如,获取的待推送消息的起始推送时间点是8:00am,推送周期是每天12小时且推送10天,即可生成20个推送时间点,分别是10天中的8:00am和8:00pm。同理,当获取的待推送消息有多个待推送消息时,分别获取每个待推送消息对应的起始推送时间点以及推送周期,然后根据各个待推送消息对应的起始推送时间点以及推送周期,即可生成各个待推送信息对应的各个推送时间点,例如,获取的两个待推送消息的起始推送时间点分别是8:00am和10:00am,推送周期是每天24小时并且推送7天,即可生成每个待推送消息的7个推送时间点,分别是7天中的 8:00am 和 10:00am。
[0087]步骤S20,将所述待推送消息与生成的各个推送时间点关联存储;
[0088]在本实施例中,在生成所述待推送 信息对应的各个推送时间点后,将所述待推送消息与生成的各个推送时间点关联存储,所述将所述待推送消息与生成的各个推送时间点关联存储的方式为:先建立所述待推送消息与生成的各个待推送消息的关联关系,然后根据建立的所述关联关系将所述待推送消息与生成的各个推送时间点存储到预设的存储空间,所述存储空间包括MongoDB(分布式文档存储数据库)、缓存或闪存等等,也就是说,在所述存储空间中,所述待推送消息对应着各个推送时间点,相当于是存储待推送消息时,记录所述待推送消息的标识信息,然后将生成的各个推送时间点存储到所述存储空间时,对各个推送时间点也记录所述待推送消息的标识信息,以建立所述待推送消息与生成的各个待推送消息的关联关系。或者是,存储待推送消息时,在所述待推送消息中设置一个标志位如标志位1,在存储生成的各个推送时间点时,对各个推送时间点也设置所述标志位1,以建立所述待推送消息与生成的各个待推送消息的关联关系。本实施例中,通过预存一个待推送消息以及各个推送时间点,可以减小存储空间中的存储容量,从而提高了服务器的运行效率。
[0089]可以理解的是,将所述待推送消息与生成的各个推送时间点关联存储时,也可先确定生成的各个推送时间点对应的个数,根据确定的个数相应生成所述个数对应的各个待推送消息,并将生成的各个待推送消息与各个推送时间点关联存储,即每个待推送消息对应一个推送时间点,此时,存储的各个待推送消息中,只是推送时间点不同,其它内容都是都相同。
[0090]步骤S30,按照推送时间点的先后顺序依次推送所述待推送消息。
[0091 ]在本实施例中,所述步骤S30的实施方式包括:
[0092]1)方式一、将所述待推送消息与生成的各个推送时间点关联存储后,按照各个推送时间点的先后顺序排列各个推送时间点,并在第一个推送时间点与当前时间点匹配时,将所述待推送消息推送给终端。
[0093]2)方式二、将所述待推送消息与生成的各个推送时间点关联存储后,在所述各个推送时间点中有推送时间点与当前时间点匹配时,将所述待推送消息推送给终端。
[0094]3)方式二、将所述待推送消息与生成的各个推送时间点关联存储后,按照各个推送时间点的先后顺序将所述待推送消息依次存入预设的消息列队中,并在所述消息列队中的第一个待推送消息的推送时间点与当前时间点匹配时,将所述第一个待推送消息推送至终端中。
[0095]4)方式四、为了提高消息推送的灵活性,所述步骤S30包括:
[0096]步骤A,所述服务器获取各个推送时间点中距离当前时间点的时间间隔小于第一预设时间间隔的各个推送时间点;
[0097]步骤B,按照获取的各个推送时间点的先后顺序将所述待推送消息依次存入消息列队中;
[0098]步骤C,在所述消息列队中的待推送消息的推送时间点距离当前时间点的时间间隔小于第二预设时间间隔时,将所述消息列队中的所述待推送消息推送至终端中。
[0099]在本实施例中,所述服务器获取各个推送时间点中距离当前时间点的时间间隔小于第一预设时间间隔的各个推送时间点,然后按照获取的各个推送时间点的先后顺序将所述待推送消息依次存入消息列队中,即按照获取的各个推送时间点获取相应次数的待推送消息,并将获取的待推送消息依次存入消息列队中。相当于所述服务器每隔第一预设时间间隔调用一次生产线程,如所述服务器每隔5秒启动一次生产线程,并通过所述生产线程获取未来5秒需要推送的待推送消息,然后将获取的各个待推送消息按照推送时间点的先后顺序依次存入消息列队中。本实施例通过设置第一预设时间间隔,使得服务器每次只要获取存储的各个待推送消息中推送时间点距离当前时间点的时间间隔小于第一预设时间间隔的各个待推送消息即可,而不需要获取全部的待推送消息,实现了对即将推送的消息才放入消息列队中,而不需要放入全部的待推送消息,减小了消息列队的负担,提高了消息推送的效率。而在所述消息列队中的待推送消息的推送时间点距离当前时间点的时间间隔小于第二预设时间间隔时,所述服务器将所述消息列队中的所述待推送消息推送至终端中。相当于所述服务器每隔第二预设时间间隔调用一次任务线程,如所述服务器每隔2秒启动一次任务线程,并通过所述任务线程将所述消息队列中未来2秒需要发送的所述待推送消息推送到终端中。本实施例通过设置第二预设时间间隔,使得所述消息列队的所述待推送消息的推送时间点距离当前时间点的时间间隔小于第二预设时间间隔时,才将所述消息列队中的所述待推送消息推送至终端中,特别是当消息列队中存储的待推送消息包括多个,且各个待推送消息的推送时间点仅相差几秒时,通过事先设置第二预设时间间隔,提前对待推送的消息进行排序并发送,不会造成推送时间点到达,由于待推送的消息过多,而导致消息推送延迟的情况,本实施例提高了消息推送的效率。
[0100]本实施例提出的消息推送方法,先通过待推送消息对应的起始推送时间以及推送周期,生成所述待推送信息对应的各个推送时间点,然后将所述待推送消息与生成的各个推送时间点关联存储,最后按照推送时间点的先后顺序依次推送所述待推送消息,而不是当待推送消息在同一天需要推送多次时,需要人为配置多个推送时间点,本发明只要获取待推送消息的起始推送时间点以及推送周期,即可获得对应的各个推送时间点,然后按照推送时间点的先后顺序依次推送所述待推送消息,从而提高了消息推送的灵活性。
[0101]进一步地,为了提高消息推送的灵活性,参照图7,基于第一实施例提出本发明消息推送方法的第二实施例,在本实施例中,所述步骤S30之后,所述消息推送方法包括:
[0102]步骤S40,若所述消息列队中的所述待推送消息推送失败,则所述服务器对推送失败的所述待推送消息增加预设时间段以更新所述推送失败的所述待推送消息的推送时间占.
[0103]步骤S50,根据更新后的所述推送时间点将所述推送失败的所述待推送消息插入所述消息列队中。
[0104]在本实施例中,若所述消息列队中的所述待推送消息推送失败,则所述服务器对所述推送失败的所述待推送消息增加预设时间段以更新所述推送失败的所述待推送消息的推送时间点,即在所述推送失败的所述待推送消息对应的推送时间点中增加预设的时间段,使得所述推送失败的所述待推送消息对应的推送时间点延后了,然后所述服务器根据更新后的所述推送时间点将所述推送失败的所述待推送消息插入所述消息列队中,即所述服务器将更新了推送时间点的所述待推送消息插入所述消息列队中,在本实施例中,为了提高消息推送的智能性,所述服务器将更新后的推送时间点与消息列队中的其它各个待推送消息对应的推送时间点进行比对,以确定更新了推送时间点的所述待推送消息与其它各个待推送消息的推送时间点的先后顺序,并按照推送时间点的先后顺序重新排列更新了推送时间点的所述待推送消息和其它各个待推送消息,使得推送时间点靠前的待推送消息排在前面,推送时间点靠后的待推送消息排在后面。例如,消息列队中有4个待推送消息,4个推送时间点分别为8:00am、8:05am、8:10am和8:15am,在第一待推送消息推送失败时,将所述第一待推送消息的推送时间点增加预设的时间间隔如6min,即可知道所述第一待推送消息更新后的推送时间点为8:06am,因此,将更新后的第一待推送消息插入所述消息列队时,是插入到8:05am和8:10am之间,使得所述消息列队中的各个待推送消息的排列顺序为8:05am、8:06am、8:10am和8:15am0
[0105]本实施例将推送失败的消息重新存入消息列队中,使得推送失败的消息再次进行推送,避免了由于网速中断、或者是服务器出现暂时性故障时,而导致的消息推送失败,本实施例提高了消息推送的灵活性。
[0106]进一步地,为了提高消息推送的智能性,参照图8,基于第二实施例提出本发明消息推送方 法的第三实施例,在本实施例中,所述步骤S50之后,所述消息推送方法还包括:
[0107]步骤S60,在所述推送失败的所述待推送消息推送失败的次数达到预设次数时,所述服务器向所述终端发送提示信息。
[0108]在本实施例中,所述服务器事先设置同一个消息失败可重复次数,即同一个消息推送失败的次数对应的预设次数,例如,将同一个消息可最大推送失败设置为3次,当同一个消息推送失败次数超过3次,则抛弃该消息,不再继续推送,也就是在所述推送失败的所述待推送消息推送失败的次数达到预设次数如达到3次时,所述服务器不再将所述推送失败的所述待推送消息插入列队中,此时,所述服务器向所述终端发送提示信息,所述服务器向所述终端发送提示信息包括:发送预设的短信到所述终端中,或者是发送预设的邮件到预设的邮箱所在终端中。
[0109]本实施例中,在所述推送失败的所述待推送消息推送失败的次数达到预设次数时,向所述终端发送提示信息,使得终端可得知消息推送失败的情况,提高了消息推送的智能性。
[0110]进一步地,为了提高消息推送的灵活性,基于第一、二、三实施例提出本发明消息推送方法的第四实施例,在本实施例中,所述消息推送方法还包括步骤:
[0111]所述服务器在推送消息过程中,每隔第三预设时间间隔向预设的监控终端发送已推送的消息对应的关联信息,以供所述监控终端显示所述已推送的消息对应的关联信息。
[0112]在本实施例中,所述服务器在推送消息过程中,每隔第三预设时间间隔向预设的监控终端发送已推送的消息对应的关联信息,以供所述监控终端显示所述已推送的消息对应的关联信息,所述关联信息包括已推送的消息的名称、已推送的消息的推送时间、已推送的消息的推送失败次数、失败原因等等,本实施例中,通过每隔第三预设时间间隔向预设的监控终端发送已推送的消息对应的关联信息,使得所述监控终端可每隔第三预设时间间隔刷新所已推送的消息对应的关联信息,如每5秒在监控界面中对已推送的消息对应的关联信息进行刷新,实现了对消息推送情况的实时监测。
[0113]需要说明的是,在本文中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
[0114]上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0115]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如R0M/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,月艮务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
[0116]以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。
【主权项】
1.一种消息推送装置,其特征在于,所述消息推送装置包括: 生成模块,用于根据预设的待推送消息对应的起始推送时间点以及推送周期,生成所述待推送信息对应的各个推送时间点; 存储模块,用于将所述待推送消息与生成的各个推送时间点关联存储; 推送模块,用于按照推送时间点的先后顺序依次推送所述待推送消息。2.如权利要求1所述的消息推送装置,其特征在于,所述推送模块包括: 获取单元,用于获取各个推送时间点中距离当前时间点的时间间隔小于第一预设时间间隔的各个推送时间点; 存入单元,用于按照获取的各个推送时间点的先后顺序将所述待推送消息依次存入消息列队中; 推送单元,用于在所述消息列队中的待推送消息的推送时间点距离当前时间点的时间间隔小于第二预设时间间隔时,将所述消息列队中的所述待推送消息推送至终端中。3.如权利要求2所述的消息推送装置,其特征在于,所述消息推送装置还包括: 更新模块,用于若所述消息列队中的所述待推送消息推送失败,则对推送失败的所述待推送消息增加预设时间段以更新所述推送失败的所述待推送消息的推送时间点; 插入模块,用于根据更新后的所述推送时间点将所述推送失败的所述待推送消息插入所述消息列队中。4.如权利要求3所述的消息推送装置,其特征在于,所述消息推送装置还包括: 第一发送模块,用于在所述推送失败的所述待推送消息推送失败的次数达到预设次数时,向所述终端发送提示信息。5.如权利要求1-4任一项所述的消息推送装置,其特征在于,所述消息推送装置还包括: 第二发送模块,用于在推送消息过程中,每隔第三预设时间间隔向预设的监控终端发送已推送的消息对应的关联信息,以供所述监控终端显示所述已推送的消息对应的关联信息。6.一种消息推送方法,其特征在于,所述消息推送方法包括以下步骤: 服务器根据预设的待推送消息对应的起始推送时间点以及推送周期,生成所述待推送信息对应的各个推送时间点; 将所述待推送消息与生成的各个推送时间点关联存储; 按照推送时间点的先后顺序依次推送所述待推送消息。7.如权利要求6所述的消息推送方法,其特征在于,所述按照推送时间点的先后顺序依次推送所述待推送消息的步骤包括: 所述服务器获取各个推送时间点中距离当前时间点的时间间隔小于第一预设时间间隔的各个推送时间点; 按照获取的各个推送时间点的先后顺序将所述待推送消息依次存入消息列队中;在所述消息列队中的待推送消息的推送时间点距离当前时间点的时间间隔小于第二预设时间间隔时,将所述消息列队中的所述待推送消息推送至终端中。8.如权利要求7所述的消息推送方法,其特征在于,所述将所述消息列队中的所述待推送消息推送至终端中的步骤之后,所述消息推送方法包括: 若所述消息列队中的所述待推送消息推送失败,则所述服务器对推送失败的所述待推送消息增加预设时间段以更新所述推送失败的所述待推送消息的推送时间点; 根据更新后的所述推送时间点将所述推送失败的所述待推送消息插入所述消息列队中。9.如权利要求8所述的消息推送方法,其特征在于,所述根据更新后的所述推送时间点将所述推送失败的所述待推送消息插入所述消息列队中的步骤之后,所述消息推送方法还包括: 在所述推送失败的所述待推送消息推送失败的次数达到预设次数时,所述服务器向所述终端发送提示信息。10.如权利要求6-9任一项所述的消息推送方法,其特征在于,所述消息推送方法还包括: 所述服务器在推送消息过程中,每隔第三预设时间间隔向预设的监控终端发送已推送的消息对应的关联信息,以供所述监控终端显示所述已推送的消息对应的关联信息。
【专利摘要】本发明公开了一种消息推送装置,所述消息推送装置包括:生成模块,用于根据预设的待推送消息对应的起始推送时间点以及推送周期,生成所述待推送信息对应的各个推送时间点;存储模块,用于将所述待推送消息与生成的各个推送时间点关联存储;推送模块,用于按照推送时间点的先后顺序依次推送所述待推送消息。本发明还公开了一种消息推送方法。本发明提高了消息推送的灵活性。
【IPC分类】H04L29/08, H04L12/58
【公开号】CN105491115
【申请号】CN201510833720
【发明人】邹炜
【申请人】努比亚技术有限公司
【公开日】2016年4月13日
【申请日】2015年11月25日

最新回复(0)