一種控制報文發(fā)送的方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設及移動通信技術(shù)領(lǐng)域,特別設及一種控制報文發(fā)送的方法及裝置。
【背景技術(shù)】
[0002] 由于網(wǎng)關(guān)的資源有限,當報文業(yè)務量較大的時候,會給網(wǎng)關(guān)很大的壓力,容易導致 網(wǎng)關(guān)響應速度變慢,報文發(fā)送失敗,甚至導致網(wǎng)關(guān)崩潰?,F(xiàn)有技術(shù)中,向網(wǎng)關(guān)發(fā)送報文時,對 報文的流控一般采用如下方法;首先將報文保存到隊列中,然后每隔一段時間從隊列中取 出指定數(shù)量的報文進行發(fā)送,之后休眠。例如,一個每秒發(fā)送500條報文的系統(tǒng),從隊列中 取出500條報文發(fā)送完成后,判斷當前時間距報文開始發(fā)送的時間是否超過1秒,如果超 過,則再從隊列中取出500條報文發(fā)送給網(wǎng)關(guān);否則休眠,休眠的時間為直到距報文開始發(fā) 送的時間達到1秒鐘。
[0003] 然而,現(xiàn)有的報文流控存在W下問題:由于分時間段發(fā)送報文,只能保證當前時 間段報文不超速,卻無法保證在整個發(fā)送過程中任意時間段內(nèi)報文均不超速。例如,在 15:00:00秒到15:00:01秒之間每100毫秒發(fā)送50條報文,然后在15:00:01-15:00:02秒 的開始的前500毫秒發(fā)送了 500條,然后在15:00:01-15:00:02秒的后500毫秒休眠???W看出,在兩個時間段15:00:00-15:00:01秒和15:00:01-15:00:02秒內(nèi)均未超速,但在中 間時間段15:00:00. 500-15:00:01. 500的該1秒內(nèi),發(fā)送了 750條報文,已嚴重超速。
[0004] 可W看出,采用現(xiàn)有的報文流控,無法保證任意時間段內(nèi)報文的發(fā)送速度均不超 速,容易導致網(wǎng)關(guān)響應速度變慢,報文發(fā)送失敗,甚至導致網(wǎng)關(guān)崩潰。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明實施例提供一種控制報文發(fā)送的方法及裝置,用W解決現(xiàn)有技術(shù)中無法保 證任意時間段內(nèi)報文的發(fā)送速度均不超速,容易導致網(wǎng)關(guān)響應速度變慢,報文發(fā)送失敗,甚 至導致網(wǎng)關(guān)崩潰的問題。
[0006] 本發(fā)明實施例提供一種控制報文發(fā)送的方法,包括:
[0007] 獲取網(wǎng)關(guān)允許的報文發(fā)送速度,所述報文發(fā)送速度為在第一設定時間內(nèi)允許發(fā)送 N條報文;
[0008] 接收第M條待發(fā)送報文,計算當前時間與第M-N條報文的發(fā)送時間的差值;其中, M大于N;
[0009] 若所述當前時間與第M-N條報文的發(fā)送時間的差值大于或等于所述第一設定時 間,則發(fā)送所述第M條待發(fā)送報文;若所述當前時間與第M-N條報文的發(fā)送時間的差值小于 所述第一設定時間,則控制所述第M條待發(fā)送報文的發(fā)送時間。
[0010] 較佳的,若所述當前時間與第M-N條報文的發(fā)送時間的差值小于所述第一設定時 間,則控制所述第M條待發(fā)送報文的發(fā)送時間,具體為:
[0011] 等待第一時長后,發(fā)送所述第M條待發(fā)送報文;所述第一時長大于或等于所述當 前時間與第M-N條報文的發(fā)送時間的差值。
[0012] 較佳的,在獲取網(wǎng)關(guān)允許的報文發(fā)送速度后,還包括:
[0013] 根據(jù)所述網(wǎng)關(guān)允許的報文發(fā)送速度創(chuàng)建數(shù)組,所述數(shù)組用于存放報文的發(fā)送時間 且所述數(shù)組的大小與所述網(wǎng)關(guān)在第一設定的時間內(nèi)允許發(fā)送的報文數(shù)量N相同;
[0014] 在將第M條待發(fā)送報文進行發(fā)送后,還包括:
[0015] 將所述第M條待發(fā)送報文的發(fā)送時間覆蓋所述第M-N條報文的發(fā)送時間。
[0016] 較佳的,接收第N條待發(fā)送報文時,計算當前時間與第一條報文的發(fā)送時間的差 值,若所述當前時間與第一條報文的發(fā)送時間的差值大于或等于所述第一設定時間,則發(fā) 送所述第N條待發(fā)送報文;若所述當前時間與第一條報文的發(fā)送時間的差值小于所述第一 設定時間,則控制所述第N條待發(fā)送報文的發(fā)送時間。
[0017] 較佳的,在將第M條待發(fā)送報文的發(fā)送時間覆蓋所述第M-N條報文的發(fā)送時間后, 還包括:
[001引將所述數(shù)組的下標加1 ;
[0019] 若所述數(shù)組的下標加1后與N的值相同,則將所述數(shù)組的下標置0。
[0020] 本發(fā)明實施例還提供一種控制報文發(fā)送的裝置,包括:
[0021] 獲取模塊,用于獲取網(wǎng)關(guān)允許的報文發(fā)送速度,所述報文發(fā)送速度為在第一設定 時間內(nèi)允許發(fā)送N條報文;
[0022] 接收模塊,用于接收第M條待發(fā)送報文,計算當前時間與第M-N條報文的發(fā)送時間 的差值;其中,M大于N;
[0023] 控制模塊,用于在所述當前時間與第M-N條報文的發(fā)送時間的差值大于或等于所 述第一設定時間時,發(fā)送所述第M條待發(fā)送報文;在所述當前時間與第M-N條報文的發(fā)送時 間的差值小于所述第一設定時間時,控制所述第M條待發(fā)送報文的發(fā)送時間。
[0024] 較佳的,所述控制模塊,具體用于;在所述當前時間與第M-N條報文的發(fā)送時間的 差值小于所述第一設定時間時,控制所述第M條待發(fā)送報文的發(fā)送時間,具體為:等待第一 時長后,發(fā)送所述第M條待發(fā)送報文;所述第一時長大于或等于所述當前時間與第M-N條報 文的發(fā)送時間的差值。
[00巧]較佳的,所述獲取模塊,還用于:
[0026] 在獲取網(wǎng)關(guān)允許的報文發(fā)送速度后,根據(jù)所述網(wǎng)關(guān)允許的報文發(fā)送速度創(chuàng)建數(shù) 組,所述數(shù)組用于存放報文的發(fā)送時間且所述數(shù)組的大小與所述網(wǎng)關(guān)在第一設定的時間內(nèi) 允許發(fā)送的報文數(shù)量N相同;
[0027] 所述控制模塊,還用于;在將第M條待發(fā)送報文進行發(fā)送后,指示所述獲取模塊將 所述第M條待發(fā)送報文的發(fā)送時間覆蓋所述第M-N條報文的發(fā)送時間。
[0028] 較佳的,所述接收模塊,具體用于:
[0029] 接收第N條待發(fā)送報文時,計算當前時間與第一條報文的發(fā)送時間的差值;
[0030] 所述控制模塊,具體用于:
[0031] 在所述當前時間與第一條報文的發(fā)送時間的差值大于或等于所述第一設定時間 時,發(fā)送所述第N條待發(fā)送報文;在所述當前時間與第一條報文的發(fā)送時間的差值小于所 述第一設定時間時,控制所述第N條待發(fā)送報文的發(fā)送時間。
[0032] 較佳的,所述控制模塊,還用于:
[0033] 在將第M條待發(fā)送報文的發(fā)送時間覆蓋所述第M-N條報文的發(fā)送時間后,指示所 述獲取模塊將所述數(shù)組的下標加1;
[0034] 若所述數(shù)組的下標加1后與N的值相同,則將所述數(shù)組的下標置0。
[0035]上述實施例提供的控制報文發(fā)送的方法及裝置,包括:獲取網(wǎng)關(guān)允許的報文發(fā)送 速度,所述報文發(fā)送速度為在第一設定時間內(nèi)允許發(fā)送N條報文;接收第M條待發(fā)送報文, 計算當前時間與第M-N條報文的發(fā)送時間的差值;其中,M大于N;若所述當前時間與第M-N 條報文的發(fā)送時間的差值大于或等于所述第一設定時間,則發(fā)送所述第M條待發(fā)送報文; 若所述當前時間與第M-N條報文的發(fā)送時間的差值小于所述第一設定時間,則控制所述第 M條待發(fā)送報文的發(fā)送時間。可W看出,通過在接收到第M條待發(fā)送報文時,將當前時間與 第M-N條報文的發(fā)送時間求差值,并將求得的差值與網(wǎng)關(guān)允許的報文發(fā)送速度中的第一設 定時間相比較,并在所述差值小于第一設定時間時,控制第M條報文的發(fā)送時間,從而能夠 保證任意時間段內(nèi)報文的發(fā)送速度均不超速,因此,能夠通過控制第M條報文的發(fā)送時間, 控制任意時間段內(nèi)報文的發(fā)送速度均不超速W減輕網(wǎng)關(guān)的壓力,從而避免出現(xiàn)網(wǎng)關(guān)響應速 度變慢、報文發(fā)送失敗、網(wǎng)關(guān)崩潰的情況。
【附圖說明】
[0036]為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例描述中所需要使 用的附圖作簡要介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本 領(lǐng)域的普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可W根據(jù)該些附圖獲得其 他的附圖。
[0037] 圖1為本發(fā)明實施例提供的控制報文發(fā)送的方法的流程圖;
[003引圖2為本發(fā)明實施例提供的控制報文發(fā)送的裝置的結(jié)構(gòu)示意圖。
【具體實施方式】
[0039]為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明作進 一步地詳細描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施 例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的 所有其它實施例,都屬于本發(fā)明保護的范圍。
[0040] 為了節(jié)省存儲空間,本發(fā)明實施例中存儲報文的發(fā)送時間優(yōu)先采用數(shù)組,但并不 表示僅限于采用數(shù)組存儲報文的發(fā)送時間,即本發(fā)明實施例中可W采用任何類型的存儲方 式存儲報文的發(fā)送時間。
[0041] 本發(fā)明實施例中沒有對報文的類型進行任何形式的限定,在具體實施時,報文可 W是短信,也可W是消息,還可W是其它任何類型的報文。
[0042] 本發(fā)明實施例中也沒有對網(wǎng)關(guān)的類型進行任何限定,在具體實施時,網(wǎng)關(guān)可W是 ISMGQnternet化ortMessageGateway,互聯(lián)網(wǎng)短信網(wǎng)關(guān)),也可W是其它任何類型的網(wǎng) 關(guān)。
[0043] 圖1,為本發(fā)明實施例提供的控制報文發(fā)送的方法的流程圖。如圖所示,該方法可 包括:
[0044]S101、獲取網(wǎng)關(guān)允許的報文發(fā)送速度。網(wǎng)關(guān)允許的報文發(fā)送速度為在第一設定時 間內(nèi)允許發(fā)送N條