一種消息推送方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信技術(shù)領(lǐng)域,特別涉及一種消息推送方法和裝置。
【背景技術(shù)】
[0002]隨著網(wǎng)絡(luò)通信的普及和發(fā)展,網(wǎng)絡(luò)視頻媒體已經(jīng)成為一個(gè)頗為有效的視頻信息獲取渠道。與傳統(tǒng)電視媒體相比,網(wǎng)絡(luò)視頻媒體的多媒體表現(xiàn)形式更加多樣。用戶可以通過前端視頻播放器,從后臺(tái)服務(wù)器中獲取所需的視頻,后臺(tái)服務(wù)器通過網(wǎng)絡(luò)實(shí)時(shí)將用戶所需的視頻發(fā)送至視頻播放器,以供用戶觀看。
[0003]用戶在觀看視頻的過程中,由于視頻是從后臺(tái)服務(wù)器中實(shí)時(shí)獲取的,視頻在復(fù)雜的網(wǎng)絡(luò)環(huán)境中傳輸時(shí),往往會(huì)出現(xiàn)不可預(yù)測(cè)的問題,使得獲取到的視頻在播放器中播放時(shí)出現(xiàn)異常,導(dǎo)致用戶無法正常觀看該視頻。后臺(tái)服務(wù)器在確定視頻播放出現(xiàn)異常時(shí),通過消息推送機(jī)制,通知用戶發(fā)生視頻播放異常的原因,如網(wǎng)絡(luò)原因(如網(wǎng)速過慢、網(wǎng)絡(luò)連接失敗等等)、或視頻不完整的原因、或空間內(nèi)存不足的原因等。
[0004]現(xiàn)有消息推送機(jī)制中,后臺(tái)服務(wù)器在確定視頻播放出現(xiàn)異常時(shí),生成相應(yīng)的通知消息,并且,每生成一個(gè)通知消息,就建立一個(gè)相應(yīng)的推送線程,并通過該推送線程將該消息發(fā)送至視頻播放器?,F(xiàn)有消息推送機(jī)制下,若在某段時(shí)間內(nèi)出現(xiàn)的視頻異常較多,則需要建立較多的推送線程對(duì)不同的通知消息進(jìn)行并行發(fā)送。由于每個(gè)推送線程都會(huì)占用一定的內(nèi)存資源,推送線程的數(shù)量越多,所占用的內(nèi)存資源就越多,這樣會(huì)導(dǎo)致內(nèi)存利用率降低,嚴(yán)重時(shí)會(huì)造成系統(tǒng)崩潰。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實(shí)施例提供了一種消息推送方法和裝置,用于解決在視頻傳輸過程中,在視頻頻繁出現(xiàn)異常時(shí),采用現(xiàn)有消息推送機(jī)制向前端視頻播放器發(fā)送通知消息,容易導(dǎo)致系統(tǒng)的內(nèi)存利用率降低,嚴(yán)重時(shí)會(huì)造成系統(tǒng)崩潰的問題。
[0006]本發(fā)明實(shí)施例提供了一種消息推送方法,在視頻傳輸過程中,該方法包括以下步驟:
[0007]每個(gè)設(shè)定的上報(bào)周期內(nèi),在確定所述視頻出現(xiàn)異常時(shí),生成通知消息,所述通知消息中包含用于表示所述視頻出現(xiàn)異常的原因的原因值;
[0008]在每個(gè)設(shè)定的上報(bào)周期結(jié)束時(shí),將本上報(bào)周期內(nèi)所確定的所有通知消息,通過一條已建立的線程發(fā)送給視頻播放器。
[0009]本發(fā)明實(shí)施例中,由于只在每個(gè)設(shè)定的上報(bào)周期結(jié)束時(shí),將本上報(bào)周期內(nèi)所確定的所有通知消息通過一條線程發(fā)送給視頻播放器,減少了所建立的線程數(shù),提高了內(nèi)存資源利用率;另外,由于只在每個(gè)上報(bào)周期結(jié)束時(shí)才發(fā)送一次,在視頻異常高發(fā)時(shí)期,不會(huì)頻繁向視頻播放器發(fā)送通知消息,這樣用戶也不會(huì)頻繁從視頻播放器上看到通知消息,從而提聞了用戶體驗(yàn)。
[0010]在實(shí)施中,在生成所述通知消息之后,在將每個(gè)設(shè)定時(shí)間段內(nèi)所確定的所有通知消息,通過一條已建立的線程發(fā)送給視頻播放器之前,所述方法還包括:
[0011 ] 將所述通知消息存儲(chǔ)于緩存區(qū)內(nèi),其中,所述緩存區(qū)用于暫時(shí)存儲(chǔ)所述通知消息。
[0012]基于上述實(shí)施例,在實(shí)施中,所述在每個(gè)設(shè)定的上報(bào)周期結(jié)束時(shí),將本上報(bào)周期內(nèi)所確定的所有通知消息,通過一條已建立的線程發(fā)送給視頻播放器,具體包括:
[0013]在每個(gè)設(shè)定的上報(bào)周期結(jié)束時(shí),從所述緩存區(qū)中,獲取本上報(bào)周期內(nèi)所確定的所有通知消息,將獲取到的所有通知消息,通過一條已建立的線程發(fā)送給視頻播放器,刪除所述緩存區(qū)內(nèi)存儲(chǔ)的本上報(bào)周期內(nèi)所確定的所有通知消息。
[0014]基于上述任一實(shí)施例,在實(shí)施中,所述在確定所述視頻出現(xiàn)異常時(shí),生成所述通知消息,具體包括:
[0015]開啟已配置的定時(shí)器,在確定所述視頻出現(xiàn)異常時(shí),生成所述通知消息;
[0016]所述在每個(gè)設(shè)定的上報(bào)周期結(jié)束時(shí),將本上報(bào)周期內(nèi)所確定的所有通知消息,通過一條已建立的線程發(fā)送給視頻播放器,具體包括:
[0017]在所述定時(shí)器超時(shí)時(shí),將所述定時(shí)器超時(shí)前所確定的所有通知消息通過一條已建立的線程發(fā)送給視頻播放器,并重新啟動(dòng)所述定時(shí)器。
[0018]基于上述任一實(shí)施例,優(yōu)選的,所述在每個(gè)設(shè)定的上報(bào)周期結(jié)束時(shí),將本上報(bào)周期內(nèi)所確定的所有通知消息,通過一條已建立的線程發(fā)送給視頻播放器,具體包括:
[0019]在每個(gè)設(shè)定的上報(bào)周期結(jié)束時(shí),根據(jù)本上報(bào)周期所確定的所有通知消息中各通知消息包含的原因值,將包含有相同原因值的通知消息合并為一條通知消息;以及,將合并處理后的所有通知消息,通過一條已建立的線程發(fā)送給視頻播放器。
[0020]該優(yōu)選方式下,由于將上報(bào)周期內(nèi)所確定的通知消息中包含相同原因值的通知消息進(jìn)行去重處理,只保留一條包含該原因值的通知消息,進(jìn)一步減少了所發(fā)送的通知消息的數(shù)量,提高了用戶體驗(yàn)。
[0021]基于同一發(fā)明構(gòu)思,本發(fā)明實(shí)施例還提供了一種消息推送裝置,該裝置包括:
[0022]第一處理模塊,用于每個(gè)設(shè)定的上報(bào)周期內(nèi),在確定所述視頻出現(xiàn)異常時(shí),生成通知消息,所述通知消息中包含用于表示所述視頻出現(xiàn)異常的原因的原因值;
[0023]第二處理模塊,用于在每個(gè)設(shè)定的上報(bào)周期結(jié)束時(shí),將本上報(bào)周期內(nèi)所確定的所有通知消息,通過一條已建立的線程發(fā)送給視頻播放器。
[0024]本發(fā)明實(shí)施例所提供的裝置,由于只在每個(gè)設(shè)定的上報(bào)周期結(jié)束時(shí),將本上報(bào)周期內(nèi)所確定的所有通知消息通過一條線程發(fā)送給視頻播放器,減少了所建立的線程數(shù),提高了該裝置內(nèi)存資源利用率;另外,由于只在每個(gè)上報(bào)周期結(jié)束時(shí)才發(fā)送一次,在視頻異常高發(fā)時(shí)期,不會(huì)頻繁向視頻播放器發(fā)送通知消息,這樣用戶也不會(huì)頻繁從視頻播放器上看到通知消息,從而提高了用戶體驗(yàn)。
[0025]本發(fā)明實(shí)施例提供的裝置設(shè)置于后臺(tái)服務(wù)器中,后臺(tái)服務(wù)器中存儲(chǔ)有各種視頻,并能夠通過網(wǎng)絡(luò)向前端視頻播放器傳輸視頻,后臺(tái)服務(wù)器在通過網(wǎng)絡(luò)向前端視頻播放器傳輸視頻的過程中,該裝置用于確定所傳輸?shù)囊曨l是否出現(xiàn)異常,在所傳輸?shù)囊曨l出現(xiàn)異常時(shí),生成相應(yīng)的通知消息,以通知用戶該視頻出現(xiàn)異常的原因。
[0026]在實(shí)施中,所述第一處理模塊在生成所述通知消息之后,還用于:
[0027]將所述通知消息存儲(chǔ)于緩存區(qū)內(nèi),其中,所述緩存區(qū)用于暫時(shí)存儲(chǔ)所述通知消息。
[0028]基于上述實(shí)施例,在實(shí)施中,所述第二處理模塊具體用于:
[0029]在每個(gè)設(shè)定的上報(bào)周期結(jié)束時(shí),從所述緩存區(qū)中,獲取本上報(bào)周期內(nèi)所確定的所有通知消息,將獲取到的所有通知消息,通過一條已建立的線程發(fā)送給視頻播放器,刪除所述緩存區(qū)內(nèi)存儲(chǔ)的本上報(bào)周期內(nèi)所確定的所有通知消息。
[0030]基于上述任一實(shí)施例,作為一種優(yōu)選的實(shí)現(xiàn)方式:
[0031]所述第一處理模塊具體用于:開啟已配置的定時(shí)器,在確定所述視頻出現(xiàn)異常時(shí),生成所述通知消息;
[0032]所述第二處理模塊具體用于:在所述定時(shí)器超時(shí)時(shí),將所述定時(shí)器超時(shí)前所確定的所有通知消息通過一條已建立的線程發(fā)送給視頻播放器,并觸發(fā)所述第一處理模塊重新啟動(dòng)所述定時(shí)器。
[0033]基于上述任一實(shí)施例,優(yōu)選的,所述第二處理模塊具體用于:
[0034]在每個(gè)設(shè)定的上報(bào)周期結(jié)束時(shí),根據(jù)本上報(bào)周期所確定的所有通知消息中各通知消息包含的原因值,將包含有相同原因值的通知消息合并為一條通知消息;以及,將合并處理后的所有通知消息,通過一條已建立的線程發(fā)送給視頻播放器。
[0035]該優(yōu)選方式下,第二處理模塊將上報(bào)周期內(nèi)所確定的通知消息中包含相同原因值的通知消息進(jìn)行去重處理,只保留一條包含該原因值的通知消息,進(jìn)一步減少了所發(fā)送的通知消息的數(shù)量,提高了用戶體驗(yàn)。
【附圖說明】
[0036]圖1為本發(fā)明實(shí)施例提供的消息推送方法的示意圖;
[0037]圖2為本發(fā)明實(shí)施例提供的消息推送裝置的示意圖。
【具體實(shí)施方式】
[0038]本發(fā)明通過將每個(gè)設(shè)定時(shí)間段內(nèi)所確定的所有通知消息,通過一條已建立的線程發(fā)送給視頻播放器,從而通過一條線程將設(shè)定時(shí)間段內(nèi)所確定的所有通知消息發(fā)送給視頻播放器,減少了所建立的線程數(shù),提高了內(nèi)存資源利用率。
[0039]下面結(jié)合說明書附圖對(duì)本發(fā)明實(shí)施例作進(jìn)一步詳細(xì)描述。應(yīng)當(dāng)理解,此處所描述的實(shí)施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。
[0040]參見圖1所示,本發(fā)明實(shí)施例提供的一種消息推送方法,在視頻傳輸過程中,該方法包括以下步驟:
[0041]步驟11、每個(gè)設(shè)定的上報(bào)周期內(nèi),在確定視頻出現(xiàn)異常時(shí),生成通知消息,該通知消息中包含用于表示該視頻出現(xiàn)異常的原因的原因值。
[0042