的數據包推送數量及時間后,可根據所述時間和所述數量,計算所述第一鏈路上一次推送所述推送服務器所獲取的數據包的速率;并確定推送消息中攜帶的推送請求對應的請求速率范圍,若所計算的數據包推送速率未處于所述請求速率范圍內,則將推送消息轉發至其他鏈路進行推送;
[0083]其他鏈路可以是其他的任一鏈路(若轉發至的鏈路還不滿足所要求的推送速率,則再轉發給其他鏈路,直至推送消息轉發至滿足所要求的推送速率的鏈路);
[0084]可選的,本發明實施例還可設置速率監控服務器,對推送服務器的各條鏈路的速率進行監控,通過速率監控服務器作為推送消息的轉發橋梁,可使得推送消息準確轉發至推送速率滿足所要求的推送速率的鏈路。
[0085]本發明實施例提供的消息推送方法中,通過反映鏈路的質量情況的上一推送周期所對應的數據包推送數量及時間,對推送服務器在下一推送周期所推送的數據包數量進行調整,可實現鏈路質量變差時,鏈路在下一推送周期所推送的數據包的數量減少,達到減少數據包丟包,降低推送延遲,提高推送質量的目的。
[0086]下面對本發明實施例提供的消息推送裝置進行介紹,下文描述的消息推送裝置可與上文描述的消息推送方法相互對應參照。
[0087]圖6為本發明實施例提供的消息推送裝置的結構框圖,該裝置可應用于推送服務器,參照圖6,該裝置可以包括:
[0088]上一推送信息確定模塊100,用于在進行消息推送的過程中,確定推送服務器的第一鏈路在上一推送周期所對應的數據包推送數量及時間,所述第一鏈路為所述推送服務器的任一鏈路;
[0089]調整模塊200,用于根據所述上一推送周期所對應的數據包推送數量及時間,調整所述第一鏈路在下一推送周期所推送的數據包數量;
[0090]下一推送控制模塊300,用于控制所述第一鏈路在下一推送周期,推送與調整后的所述數據包數量對應的數據包。
[0091]可選的,在進行消息推送的過程中,所述推送服務器分批次獲取所述消息的數據包,一次獲取若干數量的數據包;一個所述推送周期為,所述第一鏈路推送所述推送服務器一次獲取的數據包的時間;對應的,圖7示出了上一推送信息確定模塊100的一種可選結構,參照圖7,上一推送信息確定模塊100可以包括:
[0092]上一次推送信息確定單元110,用于確定所述推送服務器上一次獲取的數據包的數量,及所述第一鏈路推送所述數量的數據包的時間。
[0093]可選的,圖8示出了本發明實施例提供的調整模塊200的一種可選結構,參照圖8,調整模塊200可以包括:
[0094]公式計算單元210,用于設所述推送服務器上一次獲取的數據包的數量為M個,所述第一鏈路上一次推送所述M個數據包的時間為B秒,下一次推送數據包的時間區間最大值為A秒,所述第一鏈路下一次所推送的數據包數量為T ;根據公式T = (1_Β/Αθ*Μ確定所述第一鏈路下一次所推送的數據包數量,其中,i = 1-N的整數。
[0095]可選的,圖9示出了本發明實施例提供的調整模塊200的另一種可選結構,參照圖9,調整模塊200可以包括:
[0096]第一速率計算單元220,用于根據所述時間和所述數量,計算所述第一鏈路上一次推送所述推送服務器所獲取的數據包的速率;
[0097]下一時間確定單元221,用于確定所述第一鏈路下一次推送所述推送服務器所獲取的數據包的時間區間最大值;
[0098]下一推送數量確定單元222,用于根據所述時間區間最大值及所述第一鏈路上一次推送所述推送服務器所獲取的數據包的速率,確定所述第一鏈路在所述時間區間最大值內的可推送數據包數量,所述可推送數據包數量為第一鏈路下一次所推送的數據包數量。
[0099]可選的,圖10示出了本發明實施例提供的調整模塊200的再一種可選結構,參照圖10,調整模塊200可以包括:
[0100]第二速率計算單元230,用于根據所述時間和所述數量,計算所述第一鏈路上一次推送所述推送服務器所獲取的數據包的速率;
[0101]用戶接收速率確定單元231,用于確定用戶設備接收數據包的速率;
[0102]數量降低單元232,用于若所述第一鏈路上一次推送所述推送服務器所獲取的數據包的速率,大于用戶設備接收數據包的速率,且差值符合預定條件,則降低第一鏈路下一次所推送的數據包數量。
[0103]可選的,推送服務器可將用戶設備所推送的消息推送至目標設備;對應的,一個所述推送周期為一個設定的時間段;圖11示出了上一推送信息確定模塊100的另一種可選結構,參照圖11,上一推送信息確定模塊100可以包括:
[0104]上一推送數量確定單元120,用于確定上一設定的時間段內,所述第一鏈路推送的數據包的數量。
[0105]可選的,圖12示出了本發明實施例提供的調整模塊200的又一種可選結構,參照圖12,調整模塊200可以包括:
[0106]第三速率計算單元240,用于根據所述數量與所述設定的時間段,計算所述第一鏈路在上一設定的時間段內推送數據包的速率;
[0107]數量提高單元241,用于若所述第一鏈路在上一設定的時間段內推送數據包的速率,高于設定的正常數據包推送速率,則提高所述第一鏈路在下一設定的時間段內的數據包推送數量。
[0108]可選的,所提升的推送速率不應大于推送上限速率;若在提高速率后,下一設定的時間段內實際的數據包推送速率反而減小,則本發明實施例還可再降低速率,通過如此反復操作,使得推送數據包的速率,在高于設定的正常數據包推送速率時,能夠使得推送數據包的速率盡量的最大化優化;若第一鏈路在上一設定時間段內推送數據包的速率,低于設定推送下限速率,則本發明實施例可對所述第一鏈路進行屏蔽;若第一鏈路在上一設定時間段內推送數據包的速率,介于推送下限速率與正常數據包推送速率之間,則本發明實施例可保持推送速率不變,或在下一設定的時間段降低推送速率,以減少丟包和延遲情況。
[0109]可選的,圖13示出了本發明實施例提供的消息推送裝置的另一結構框圖,結合圖6和圖13所示,該裝置還可以包括:
[0110]速率計算模塊400,用于根據所述上一推送周期所對應的數據包推送數量及時間,計算所述第一鏈路上一次推送所述推送服務器所獲取的數據包的速率;
[0111]屏蔽模塊500,用于若所計算的數據包推送速率低于設定推送下限速率,則對所述第一鏈路進行屏蔽;
[0112]轉發模塊600,用于確定所述消息中攜帶的推送請求對應的請求速率范圍,若所計算的數據包推送速率未處于所述請求速率范圍,將所述消息轉發至其他鏈路進行推送。
[0113]本發明實施例還提供一種推送服務器,包括上述所述的消息推送裝置。
[0114]本發明實施例提供的推送服務器,通過反映鏈路的質量情況的上一推送周期所對應的數據包推送數量及時間,對下一推送周期所推送的數據包數量進行調整,可實現鏈路質量變差時,鏈路在下一推送周期所推送的數據包的數量減少,達到減少數據包丟包,降低推送延遲,提高推送質量的目的。
[0115]圖14為本發明實施例提供的推送服務器的結構框圖,參照圖14,該推送服務器可以包括:處理器I,通信接口 2,存儲器3和通信總線4 ;
[0116]其中處理器1、通信接口 2、存儲器3通過通信總線4完成相互間的通信;
[0117]可選的,通信接口 2可以為通信模塊的接口,如GSM模塊的接口 ;
[0118]處理器I,用于執行程序;
[0119]存儲器3,用于存放程序;
[0120]程序可以包括程序代碼,所述程序代碼包括計算機操作指令。
[0121]處理器I可能是一個中央處理器CPU,或者是特定集成電路ASIC(Applicat1nSpecific Integrated Circuit),或者是被配置成實施本發明實施例的一個或多個集成電路。
[0122]存儲器3可能包含高速RAM存儲器,也可能還包括非易失性存儲器(non-volatilememory),例如至少一個磁盤存儲器。
[0123]其中,程序可具體用于:
[0124]在進行消息推送的過程中,確定推送服務器的第一鏈路在上一推送周期所對應的數據包推送數量及時間,所述第一鏈路為所述推送服務器的任一鏈路;
[0125]根據所述上一推送周期所對應的數據包推送數量及時間,調整所述第一鏈路在下一推送周期所推送的數據包數量;
[0126]控制所述第一鏈路在下一推送周期,推送與調整后的所述數據包數量對應的數據包。
[0127]本說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。對于實施例公開的裝置而言,由于其與實施例公開的方法相對應,所以描述的比較簡單,相關之處參見方法部分說明即可。
[0128]專業人員還可以進一步意識到,結合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機軟件或者二者的結合來實現,為了清楚地說明硬件和軟件的可互換性,在上述說明中已經按照功能一般性地描述了各示例的組成及步驟。這些功能宄竟以硬件還是軟件方式來執行,取