一种消息推送方法、装置及推送服务器的制造方法_2

文档序号:8342849阅读:来源:国知局
47]步骤S110、根据所述上一推送周期所对应的数据包推送数量及时间,调整所述第一链路在下一推送周期所推送的数据包数量;
[0048]可选的,对于根据所述上一推送周期所对应的数据包推送数量及时间,调整所述第一链路在下一推送周期所推送的数据包数量的具体策略,本发明实施例可视推送服务器推送消息的场景情况进行划分,下文将作详细描述。
[0049]可选的,本发明实施例可根据所述上一推送周期所对应的数据包推送数量及时间,计算第一链路在上一推送周期内所对应的数据包推送速率;若上一推送周期所对应的数据包推送速率太低,如低于设定的推送下限速率,难以继续推送数据包,则本发明实施例可屏蔽第一链路,调整第一链路在下一推送周期所推送的数据包数量为零。推送速率的计算方式较为常见,主要根据推送周期的时间,和推送的数据包数量得出,本发明实施例不作详细描述。
[0050]值得注意的是,上一推送周期为已发生的推送时间区间,下一推送周期为将到来的推送时间区间。
[0051]步骤S120、控制所述第一链路在下一推送周期,推送与调整后的所述数据包数量对应的数据包。
[0052]本发明实施例提供的消息推送方法中,通过反映链路的质量情况的上一推送周期所对应的数据包推送数量及时间,对推送服务器在下一推送周期所推送的数据包数量进行调整,可实现链路质量变差时,链路在下一推送周期所推送的数据包的数量减少,达到减少数据包丢包,降低推送延迟的目的。
[0053]可选的,在进行消息推送的过程中,推送服务器可分批次获取所述消息的数据包,一次获取若干数量的数据包;如消息生成服务器生成消息后,推送服务器可分任务批次进行数据包的拉取,一次拉取若干数量的数据包进行推送;则一个所述推送周期为,所述第一链路推送所述推送服务器一次获取的数据包的时间。对应的,图3示出了本发明实施例提供的消息推送方法的另一流程图,参照图3,该方法可以包括:
[0054]步骤S200、在进行消息推送的过程中,推送服务器分批次获取所述消息的数据包,
一次获取若干数量的数据包;
[0055]对应的,一个推送周期为,第一链路推送所述推送服务器一次获取的数据包的时间。
[0056]步骤S210、确定所述推送服务器上一次获取的数据包的数量,及第一链路推送所述数量的数据包的时间,所述第一链路为所述推送服务器的任一链路;
[0057]第一链路推送所述数量的数据包的时间即为上一推送周期的时间。
[0058]步骤S220、根据所述数量和时间,调整所述推送服务器下一次所获取的数据包的数量;
[0059]推送服务器下一次所获取的数据包的数量,即为第一链路下一次所需要推送的数据包数量;根据所述数量和时间,调整所述推送服务器下一次所获取的数据包的数量的策略如下:
[0060]策略一:可选的,本发明实施例可设第一链路上一次推送数据包的数量为M个(即推送服务器上一次获取的数据包的数量),耗时为B秒,下一次推送数据包的时间区间最大值为A秒(下一次推送数据包的计划时间);则下一次推送数据包的数量可以定义为T(推送服务器下一次获取的数据包的数量),且T = (1-BAi) *M,i = 1-N的整数,i的取值具体可视实际应用情况而设定;
[0061]以i = 2为例,则T = (1-B/A2) *M ;若B较大,随着B的增加,则在推送速率保持不变的情况下,下一次推送数据包的数量降低超出A太多,假设为B = A*A,则表示链路推送速率太慢,即上一次推送所述推送服务器所获取的数据包的速率低于推送下限速率,则第一链路将被屏蔽,第一链路下一次推送数据包的数量降为零较小,随着B的减小,则在推送速率保持不变的情况下,下一次推送数据包的数量提高。
[0062]策略二:可选的,本发明实施例也可根据推送服务器上一次获取的数据包的数量,及所述第一链路推送所述数量的数据包的时间,计算所述第一链路上一次推送所述推送服务器所获取的数据包的速率;确定第一链路下一次推送所述推送服务器所获取的数据包的时间区间最大值;根据所述时间区间最大值及所述第一链路上一次推送所述推送服务器所获取的数据包的速率,确定所述第一链路在所述时间区间最大值内的可推送数据包数量,所述可推送数据包数量为第一链路下一次所推送的数据包数量;
[0063]显然,本发明实施例对于此种策略,可设置推送下限速率,若第一链路上一次推送所述推送服务器所获取的数据包的速率低于该推送下限速率,则本发明实施例可屏蔽第一链路。
[0064]步骤S230、控制所述第一链路在下一推送周期,推送与调整后的所述数据包数量对应的数据包。
[0065]无论是采用上述哪种策略,本发明实施例可以所确定的所述第一链路下一次所推送的数据包数量,获取对应数量的数据包,控制所述第一链路下一次推送对应数量的数据包。
[0066]可选的,本发明实施例还可根据用户反馈调整所述第一链路在下一推送周期所推送的数据包数量;图4示出了本发明实施例提供的消息推送方法的再一流程图,参照图4,该方法可以包括:
[0067]步骤S300、在进行消息推送的过程中,推送服务器分批次获取所述消息的数据包,一次获取若干数量的数据包;
[0068]步骤S310、确定所述推送服务器上一次获取的数据包的数量,及第一链路推送所述数量的数据包的时间;根据所述时间和所述数量,计算所述第一链路上一次推送所述推送服务器所获取的数据包的速率,所述第一链路为所述推送服务器的任一链路;
[0069]步骤S320、确定用户设备接收数据包的速率;
[0070]在本发明实施例中,推送服务器分任务批次拉取消息生成服务器生成的消息进行推送,在推送过程中,有可能出现数据包丢弃的情况(包括APNS丢弃和用户主动丢弃等),本发明实施例可通过检测众多用户设备单位时间所接收的数据包数量,确定推送过程中被丢弃的数据包;
[0071]步骤S330、若所述第一链路上一次推送所述推送服务器所获取的数据包的速率,大于用户设备接收数据包的速率,且差值符合预定条件,则降低第一链路在下一次所推送的数据包数量;
[0072]由于存在数据包丢弃,第一链路单位时间内推送的数据包数量,必然大于用户设备单位数据内接收的数据包数量;若两者的差值较大且符合预定条件,则可知数据包丢弃严重,第一链路推送再多的数据包也将大部分被丢弃,因此可降低第一链路在下一推送周期所推送的数据包数量,以提升数据包的有效推送;预定条件可视所支持的操作系统情况设定。
[0073]步骤S340、以所降低的所述第一链路在下一次所推送的数据包数量,获取对应数量的数据包,控制所述第一链路下一次推送对应数量的数据包。
[0074]可选的,在进行消息推送的过程中,推送服务器可将用户设备推送至推送服务器的消息,推送至目标设备;对应的,本发明实施例可设定时间段,一个所述推送周期即为一个设定的时间段,推送服务器在若干设定时间段组成的时间区间内,对用户设备推送至推送服务器的消息进行平滑推送。对应的,图5示出了本发明实施例提供的消息推送方法的又一流程图,参照图5,该方法可以包括:
[0075]步骤S400、在进行消息推送的过程中,确定上一设定的时间段内,第一链路推送的数据包的数量;
[0076]步骤S410、根据所述数量与所述设定的时间段,计算所述第一链路在上一设定的时间段内推送数据包的速率;
[0077]步骤S420、若所述第一链路在上一设定的时间段内推送数据包的速率,高于设定的正常数据包推送速率,则提高所述第一链路在下一设定的时间段内的数据包推送数量;
[0078]可选的,若第一链路在上一设定时间段内推送数据包的速率,高于设定的正常数据包推送速率,则说明当前的链路质量较好;由于推送服务器在推送用户设备推送的消息的情况下,一般推送访问表现的较为平滑,不会出现推送离线消息所出现的推送访问在瞬间爆发的情况,因此本发明实施例可在第一链路在上一设定时间段内推送数据包的速率,高于设定的正常数据包推送速率时,提升推送速率(即提高所述第一链路在下一设定时间段内的数据包推送数量);本发明实施例还可设置推送上限速率,所提升的推送速率不应大于推送上限速率;
[0079]显然,若在提高速率后,下一设定的时间段内实际的数据包推送速率反而减小,则本发明实施例还可再降低速率,通过如此反复操作,使得推送数据包的速率,在高于设定的正常数据包推送速率时,能够使得推送数据包的速率尽量的最大化优化;
[0080]可选的,若第一链路在上一设定时间段内推送数据包的速率,低于设定推送下限速率,则本发明实施例可对所述第一链路进行屏蔽;若第一链路在上一设定时间段内推送数据包的速率,介于推送下限速率与正常数据包推送速率之间,则本发明实施例可保持推送速率不变,或在下一设定的时间段降低推送速率,以减少丢包和延迟情况。
[0081]步骤S430、控制所述第一链路在下一设定的时间段内,推送与调整后的所述数据包数量对应的数据包。
[0082]可选的,对于要求推送速率的推送请求而言,若第一链路当前的推送速率不满足所要求的推送速率,则本发明实施例可将推送消息转发至其他的链路进行推送。进一步,本发明实施例在确定了上一推送周期所对应
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1