1.一种消息推送方法,其特征在于,所述方法包括以下步骤:
将应用程序发送的实时消息或从消息队列中取出的历史消息作为待推送消息;
将所述待推送消息推送至目标集群;
在所述待推送消息推送失败时,将预设失败原因的待推送消息添加至所述消息队列中。
2.如权利要求1所述的方法,其特征在于,所述将应用程序发送的实时消息或从消息队列中取出的历史消息作为待推送消息,具体包括:
计算当前周期的估计带宽,根据所述估计带宽将应用程序发送的实时消息或从消息队列中取出的历史消息作为待推送消息。
3.如权利要求2所述的方法,其特征在于,所述根据所述估计带宽将应用程序发送的实时消息或从消息队列中取出的历史消息作为待推送消息,具体包括:
将应用程序发送的实时消息作为第一待推送消息;
判断当前周期的实际带宽是否超过所述估计带宽,若否,则将从消息队列中取出预设数量的历史消息作为第二待推送消息;
返回所述将应用程序发送的实时消息作为第一待推送消息的步骤,直至在所述当前周期的末尾时,判断当前周期的实际带宽是否超过所述估计带宽,若否,则将从消息队列中取出数量为剩余带宽的历史消息作为第三待推送消息,所述剩余带宽为当前周期的估计带宽与所述实际带宽之差。
4.如权利要求3所述的方法,其特征在于,所述预设数量通过下式进行计算,
其中,N为所述预设数量,A为所述估计带宽,B为实时消息的预计带宽。
5.如权利要求2~4中任一项所述的方法,其特征在于,所述估计带宽根据上一周期的实际带宽和所述消息队列的消息数量确定。
6.一种消息推送装置,其特征在于,所述装置包括:扩展模块和消息库模块;
所述扩展模块,用于将应用程序发送的实时消息或从消息队列中取出的历史消息作为待推送消息,并将所述待推送消息传输至所述消息库模块;
所述消息库模块,用于将接收到的待推送消息进行缓存,并将所述待推送消息推送至目标集群;在所述待推送消息推送失败时,将所述待推送消息回传至所述扩展模块,并将缓存的待推送消息删除;
所述扩展模块,还用于在接收到消息库模块回传的待推送消息时,将预设失败原因的待推送消息添加至所述消息队列中。
7.如权利要求6所述的装置,其特征在于,所述扩展模块,还用于计算当前周期的估计带宽,根据所述估计带宽将应用程序发送的实时消息或从消息队列中取出的历史消息作为待推送消息,并将所述待推送消息传输至消息库模块。
8.如权利要求7所述的装置,其特征在于,所述扩展模块,还用于将应用程序发送的实时消息作为第一待推送消息,并将所述第一待推送消息传输至消息库模块;判断当前周期的实际带宽是否超过所述估计带宽,若否,则将从消息队列中取出预设数量的历史消息作为第二待推送消息,将所述第二待推送消息传输至消息库模块;在所述当前周期的末尾时,判断当前周期的实际带宽是否超过所述估计带宽,若否,则将从消息队列中取出数量为剩余带宽的历史消息作为第三待推送消息,将所述第三待推送消息传输至消息库模块,所述剩余带宽为当前周期的估计带宽与所述实际带宽之差。
9.如权利要求8所述的装置,其特征在于,所述预设数量通过下式进行计算,
其中,N为所述预设数量,A为所述估计带宽,B为实时消息的预计带宽。
10.如权利要求7~9中任一项所述的装置,其特征在于,所述估计带宽根据上一周期的实际带宽和所述消息队列的消息数量确定。