推送方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信領(lǐng)域,具體而言,涉及推送方法及裝置。
【背景技術(shù)】
[0002]目前,推送平臺(tái)為企業(yè)業(yè)務(wù)、互聯(lián)網(wǎng)業(yè)務(wù)、家庭業(yè)務(wù)以及內(nèi)容提供商提供統(tǒng)一的消息推送通道和同步傳輸通道,方便了應(yīng)用和內(nèi)容以多種方式,安全、可靠地延伸到用戶終端,同時(shí),推送平臺(tái)為基于移動(dòng)互聯(lián)網(wǎng)的應(yīng)用提供統(tǒng)一的接入點(diǎn),能更有效地為客戶提供高性能、低延時(shí)的用戶體驗(yàn)服務(wù),增加用戶黏性,提升業(yè)務(wù)收入。
[0003]相關(guān)技術(shù)中,推送平臺(tái)整體分為二大邏輯部分:第一部分是推送平臺(tái)終端中間件,推送平臺(tái)終端中間件是一個(gè)預(yù)置在智能終端上的通用軟件模塊。中間件作為程序安裝在手機(jī)終端上,并保證在每次手機(jī)啟動(dòng)時(shí)自動(dòng)后臺(tái)運(yùn)行該程序。它主要提供對(duì)終端上應(yīng)用的控制與管理功能,例如,對(duì)智能終端上應(yīng)用注冊(cè)流程的管理,建立到推送平臺(tái)網(wǎng)關(guān)的連接,對(duì)終端應(yīng)用程序與推送平臺(tái)網(wǎng)關(guān)之間的消息轉(zhuǎn)發(fā)等等;第二部分是推送平臺(tái)網(wǎng)關(guān),推送平臺(tái)網(wǎng)關(guān)是一個(gè)運(yùn)行在移動(dòng)互聯(lián)網(wǎng)絡(luò)上的功能實(shí)體。推送平臺(tái)網(wǎng)關(guān)對(duì)外提供2部分的接入,一邊接入智能終端、另一邊接入應(yīng)用提供商,并且提供對(duì)這2部分接入實(shí)體之間消息的轉(zhuǎn)發(fā)與控制。
[0004]推送平臺(tái)是移動(dòng)互聯(lián)網(wǎng)系統(tǒng)中終端與SP (應(yīng)用服務(wù)提供商)之間進(jìn)行消息傳遞的平臺(tái),目前,相關(guān)的業(yè)務(wù)場(chǎng)景包括SP向終端群發(fā)(下行)、終端定購(gòu)(上行)、即時(shí)消息通訊(上行、下行)、終端狀態(tài)上報(bào)(上行)等。目前,實(shí)際業(yè)務(wù)量,SP向終端群發(fā)消息占比重很大,其他消息占比重很小。但未來(lái)業(yè)務(wù)發(fā)展的趨勢(shì)是上行、下行消息都可能大幅增長(zhǎng)。隨著互聯(lián)網(wǎng)的快速發(fā)展,推送平臺(tái)系統(tǒng)的使用用戶會(huì)快速的增長(zhǎng),所以這就對(duì)推送平臺(tái)系統(tǒng)的性能,并發(fā)容量、效率等提出了更高的要求。
[0005]針對(duì)相關(guān)技術(shù)中,推送平臺(tái)系統(tǒng)存在的開銷大,難以應(yīng)對(duì)高并發(fā)場(chǎng)景的問(wèn)題,尚未提出合理的解決方案。
【發(fā)明內(nèi)容】
[0006]本發(fā)明提供了一種推送方法及裝置,以至少解決推送平臺(tái)存在的開銷大,難以應(yīng)對(duì)高并發(fā)場(chǎng)景的問(wèn)題。
[0007]根據(jù)本發(fā)明的一個(gè)方面,提供了一種推送方法,包括:將推送的消息的目的用戶分為多個(gè)組;將組中的用戶信息和需要向所述組推送的消息放到群發(fā)隊(duì)列中,作為該組的群發(fā)任務(wù);在監(jiān)聽到所述群發(fā)隊(duì)列中存在所述組的群發(fā)任務(wù)之后,將向所述組推送的所述消息推送給所述組中的用戶。
[0008]優(yōu)選地,將向所述組推送的所述消息推送給所述組中的用戶包括:通過(guò)UDP報(bào)文將所述消息推送給所述組中的用戶,其中,所述UDP報(bào)文經(jīng)過(guò)可靠處理。
[0009]優(yōu)選地,對(duì)所述UDP報(bào)文經(jīng)過(guò)可靠處理包括:在將所述消息發(fā)送給所述用戶之后,如果在預(yù)定時(shí)間之內(nèi)未收到所述用戶發(fā)送的確認(rèn)消息的情況下,向所述用戶重新發(fā)送所述消息。
[0010]優(yōu)選地,向所述用戶重新發(fā)送所述消息包括:在向所述組中的用戶推送完畢之后,向所有未反饋確認(rèn)消息的用戶重新推送所述消息。
[0011 ] 優(yōu)選地,對(duì)所述UDP報(bào)文進(jìn)行可靠處理包括:將所述消息使用消息交換協(xié)議MXP進(jìn)行封裝,并將封裝后的所述消息作為所述UDP報(bào)文的數(shù)據(jù)部分。
[0012]優(yōu)選地,將所述組中的用戶信息和需要向所述組推送的消息放到群發(fā)隊(duì)列中包括:將所述組中的用戶信息和需要向所述組推送的消息放到分布式存儲(chǔ)的所述群發(fā)隊(duì)列中。
[0013]根據(jù)本發(fā)明的另一個(gè)方面,還提供了一種推送裝置,包括:分組模塊,用于將推送消息的目的用戶分成多個(gè)組;放置模塊,用于將組中的用戶信息和需要向所述組推送的消息放到群發(fā)隊(duì)列中,作為該組的群發(fā)任務(wù);推送模塊,用于在監(jiān)聽到所述群發(fā)隊(duì)列中存在所述組的群發(fā)任務(wù)之后,將向所述組推送的所述消息推送給所述組中的用戶。
[0014]優(yōu)選地,所述推送模塊用于通過(guò)UDP報(bào)文將所述消息推送給所述組中的用戶,其中,所述UDP報(bào)文經(jīng)過(guò)可靠處理。
[0015]優(yōu)選地,所述推送模塊用于在將所述消息發(fā)送給所述用戶之后,如果在預(yù)定時(shí)間之內(nèi)未收到所述用戶發(fā)送的確認(rèn)消息的情況下,向所述用戶重新發(fā)送所述消息。
[0016]優(yōu)選地,所述推送模塊用于在向所述組中的用戶推送完畢之后,向所有未反饋確認(rèn)消息的用戶重新推送所述消息。
[0017]優(yōu)選地,所述推送模塊用于將所述消息使用消息交換協(xié)議MXP進(jìn)行封裝,并將封裝后的所述消息作為所述UDP報(bào)文的數(shù)據(jù)部分。
[0018]優(yōu)選地,所述放置模塊用于將所述組中的用戶信息和需要向所述組推送的消息放到分布式存儲(chǔ)的所述群發(fā)隊(duì)列中。
[0019]通過(guò)本發(fā)明,采用將推送的消息的目的用戶分為多個(gè)組,將組中的用戶信息和需要向該組推送的消息放到群發(fā)隊(duì)列中,作為該組的群發(fā)任務(wù),在監(jiān)聽到該群發(fā)隊(duì)列中存在該組的群發(fā)任務(wù)之后,將向該組推送的該消息推送給該組中的用戶,解決了推送平臺(tái)存在的開銷大,難以應(yīng)對(duì)高并發(fā)場(chǎng)景的問(wèn)題,實(shí)現(xiàn)了推送平臺(tái)系統(tǒng)的高性能,高效率。
【附圖說(shuō)明】
[0020]此處所說(shuō)明的附圖用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本發(fā)明的示意性實(shí)施例及其說(shuō)明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:
[0021]圖1是根據(jù)本發(fā)明實(shí)施例的推送方法的流程圖;
[0022]圖2是根據(jù)本發(fā)明實(shí)施例的推送裝置的結(jié)構(gòu)框圖;
[0023]圖3是根據(jù)本發(fā)明優(yōu)選實(shí)施的推送平臺(tái)系統(tǒng)的結(jié)構(gòu)圖;
[0024]圖4是根據(jù)本發(fā)明優(yōu)選實(shí)施的推送平臺(tái)邏輯的示意圖;
[0025]圖5是根據(jù)本發(fā)明優(yōu)選實(shí)施的群組用戶同步時(shí)的處理流程圖;
[0026]圖6是根據(jù)本發(fā)明優(yōu)選實(shí)施的群發(fā)時(shí)的處理流程圖;
[0027]圖7是根據(jù)本發(fā)明優(yōu)選實(shí)施的推送平臺(tái)網(wǎng)關(guān)server進(jìn)程的線程組成示意圖。
【具體實(shí)施方式】
[0028]需要說(shuō)明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。下面將參考附圖并結(jié)合實(shí)施例來(lái)詳細(xì)說(shuō)明本發(fā)明。
[0029]在本實(shí)施例中,提供了一種推送方法,圖1是根據(jù)本發(fā)明實(shí)施例的推送方法的流程圖,如圖1所示,該流程包括如下步驟:
[0030]步驟S102,將推送的消息的目的用戶分為多個(gè)組;
[0031]步驟S104,將組中的用戶信息和需要向該組推送的消息放到群發(fā)隊(duì)列中,作為該組的群發(fā)任務(wù);
[0032]步驟S106,在監(jiān)聽到群發(fā)隊(duì)列中存在組的群發(fā)任務(wù)之后,將向該組推送的該消息推送給該組中的用戶。
[0033]通過(guò)上述步驟,將群發(fā)的任務(wù)分解成多個(gè)子任務(wù),從而可以并發(fā)執(zhí)行,相對(duì)于現(xiàn)有技術(shù)中直接將推送的消息不進(jìn)行預(yù)處理,直接進(jìn)行群發(fā)任務(wù),提高了發(fā)送的效率,從而解決了推送平臺(tái)存在的開銷大,難以應(yīng)對(duì)高并發(fā)場(chǎng)景的問(wèn)題,實(shí)現(xiàn)了推送平臺(tái)系統(tǒng)的高性能,多并發(fā),高效率。
[0034]在本實(shí)施例中,針對(duì)相關(guān)技術(shù)中推送平臺(tái)系統(tǒng)通信的傳輸控制協(xié)議(Transmiss1n Control Protocol,簡(jiǎn)稱為TCP)開銷大,難以應(yīng)對(duì)高并發(fā)場(chǎng)景的文件,作為一個(gè)優(yōu)選實(shí)施方式,在本實(shí)施例中,通過(guò)用戶數(shù)據(jù)報(bào)協(xié)議(User Datagram Protocol,簡(jiǎn)稱UDP)報(bào)文將該消息推送給該組中的用戶,UDP具有開銷小,性能高,并發(fā)無(wú)限制的優(yōu)點(diǎn),提高了推送平臺(tái)的效率,減少了開銷。
[0035]優(yōu)選地,在本實(shí)施例中,可以將UDP報(bào)文經(jīng)過(guò)可靠處理,可以增加對(duì)UDP報(bào)文的是否達(dá)到進(jìn)行驗(yàn)證,例如,在將該消息發(fā)送給該用戶之后,如果在預(yù)定時(shí)間之內(nèi)未收到該用戶發(fā)送的確認(rèn)消息的情況下,向該用戶重新發(fā)送該消息。
[0036]更優(yōu)地,在預(yù)定時(shí)間沒(méi)有收到某個(gè)用戶的反饋的情況下,可以暫時(shí)不重發(fā)該消息,等待確定該組內(nèi)所有的沒(méi)有收到反饋的用戶之后再一起進(jìn)行反饋。在該優(yōu)選實(shí)施方式中,在向該組中的用戶推送完畢之后,向所有未反饋確認(rèn)消息的用戶重新推送該消息。
[0037]上述可靠性處理,可以采用其他協(xié)議來(lái)進(jìn)行實(shí)現(xiàn),例如,可以將該消息使用消息交換協(xié)議MXP (Message eXchange protocol,簡(jiǎn)稱為MXP)進(jìn)行封裝,并將封裝后的該消息作為該UDP報(bào)文的數(shù)據(jù)部分。上述幾種對(duì)UDP報(bào)文經(jīng)過(guò)可靠處理方式根據(jù)實(shí)際的應(yīng)用場(chǎng)景可以同時(shí)應(yīng)用,也可以單獨(dú)應(yīng)用,并不受條件的限制。
[0038]優(yōu)選地,在上述實(shí)施例及優(yōu)選實(shí)施方式中,還可以將該組中的用戶信息和需要向該組推送的消息可以放到分布式存儲(chǔ)的該群發(fā)隊(duì)列中,該分布式的存儲(chǔ)可靈活的分布和擴(kuò)展,提高了推送平臺(tái)的靈活性。
[0039]在本實(shí)施例中,還提供了一種推送裝置,該推送裝置用于實(shí)現(xiàn)上述的方法,在上述實(shí)施例及優(yōu)選實(shí)施方式中已經(jīng)進(jìn)行過(guò)說(shuō)明的,在此不再贅述。
[0040]需要說(shuō)明的是,下述裝置中的模塊的名稱并不構(gòu)成對(duì)該模塊的實(shí)際限定,例如,分組模塊可以表述為“用于