消息推送装置及方法_4

文档序号:9730254阅读:来源:国知局
信息对应的各个推送时间点后,将所述待推送消息与生成的各个推送时间点关联存储,所述将所述待推送消息与生成的各个推送时间点关联存储的方式为:先建立所述待推送消息与生成的各个待推送消息的关联关系,然后根据建立的所述关联关系将所述待推送消息与生成的各个推送时间点存储到预设的存储空间,所述存储空间包括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,基于第二实施例提出本发明消息推送方
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1