一種實現(xiàn)多進程共享端口的數(shù)據(jù)處理的方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,特別涉及一種實現(xiàn)多進程共享端口的數(shù)據(jù)處理的方法及裝置。
【背景技術(shù)】
[0002]經(jīng)過近幾年的互聯(lián)網(wǎng)技術(shù)的發(fā)展,在同一個網(wǎng)絡(luò)應用系統(tǒng)中,通常會出現(xiàn)同一臺計算機上同時運行多個應用程序進程且需要接收同樣的通知消息的情況,通常情況下一個應用程序進程打開網(wǎng)絡(luò)端口后,其他程序?qū)o法使用此端口,因此就產(chǎn)生了網(wǎng)絡(luò)端口沖突的情況。在現(xiàn)有技術(shù)中,通常以給每個應用程序進程配置一個網(wǎng)絡(luò)端口的方式來避免網(wǎng)絡(luò)端口沖突;但是該方案使得同一網(wǎng)絡(luò)通知占用大量的網(wǎng)絡(luò)帶寬和計算機網(wǎng)絡(luò)端口,造成網(wǎng)絡(luò)資源和計算機系統(tǒng)的資源的浪費。
【發(fā)明內(nèi)容】
[0003]本發(fā)明提供一種實現(xiàn)多進程共享端口的數(shù)據(jù)處理方法及裝置,用以解決啟動多個進程時端口使用沖突的問題,從而不需要為每個進程設(shè)置獨立的接收端口 ;降低了網(wǎng)絡(luò)資源和計算機系統(tǒng)資源的浪費。
[0004]根據(jù)本發(fā)明實施例的第一方面,提供一種實現(xiàn)多進程共享端口的數(shù)據(jù)處理方法,包括:
[0005]通過指定的共享端口接收網(wǎng)絡(luò)通知消息并將其存儲至消息隊列;
[0006]應用進程不斷對所述消息隊列進行輪詢,以獲取未處理的網(wǎng)絡(luò)通知消息;
[0007]通過所述應用進程啟動與獲取的所述網(wǎng)絡(luò)通知消息對應的服務(wù)進程。
[0008]在一個實施例中,所述通過指定的共享端口接收網(wǎng)絡(luò)通知消息并將其存儲至消息隊列,包括:
[0009]啟動應用進程,并通過多路復用1將所述應用進程與消息隊列關(guān)聯(lián);
[0010]通過指定的共享端口接收網(wǎng)絡(luò)通知消息;
[0011]通過所述多路復用1將所述網(wǎng)絡(luò)通知消息存儲至所述消息隊列。
[0012]在一個實施例中,所述應用進程不斷對所述消息隊列進行輪詢,以獲取未處理的網(wǎng)絡(luò)通知消息,包括:
[0013]通過多路復用1啟動應用進程與所述消息隊列之間的消息接收線程;
[0014]通過所述消息接收線程對所述消息隊列進行輪詢,檢測是否存在未處理的網(wǎng)絡(luò)通知消息;
[0015]當存在未處理的網(wǎng)絡(luò)通知消息時,所述應用進程獲取所述網(wǎng)絡(luò)通知消息。
[0016]在一個實施例中,所述應用進程啟動與獲取的所述網(wǎng)絡(luò)通知消息對應的服務(wù)進程,包括:
[0017]接收啟動服務(wù)進程指令,確定啟動與獲取的所述網(wǎng)絡(luò)通知消息對應的服務(wù)進程;
[0018]檢測所述服務(wù)進程是否已啟動:
[0019]當所述服務(wù)進程已啟動時,直接使用所述服務(wù)進程;當所述服務(wù)進程并未啟動時,通過所述應用進程啟動所述服務(wù)進程,并將所述服務(wù)進程標識為啟動。
[0020]在一個實施例中,所述通過指定的共享端口接收網(wǎng)絡(luò)通知消息并將其存儲至消息隊列之前,包括:以循環(huán)的方式建立多個應用進程;其中,所述消息隊列為循環(huán)隊列。
[0021]根據(jù)本發(fā)明實施例的第二方面,還提供一種實現(xiàn)多進程共享端口的數(shù)據(jù)處理裝置,包括:
[0022]信息接收模塊,用于通過指定的共享端口接收網(wǎng)絡(luò)通知消息并將其存儲至消息隊列;
[0023]輪詢模塊,用于應用進程不斷對所述消息隊列進行輪詢,以獲取未處理的網(wǎng)絡(luò)通知消息;
[0024]啟動模塊,用于通過所述應用進程啟動與獲取的所述網(wǎng)絡(luò)通知消息對應的服務(wù)進程。
[0025]在一個實施例中,所述信息接收模塊包括:
[0026]關(guān)聯(lián)子模塊,用于啟動應用進程,并通過多路復用1將所述應用進程與消息隊列關(guān)聯(lián);
[0027]信息接收子模塊,用于通過指定的共享端口接收網(wǎng)絡(luò)通知消息;
[0028]存儲子模塊,用于通過所述多路復用1將所述網(wǎng)絡(luò)通知消息存儲至所述消息隊列。
[0029]在一個實施例中,所述輪詢模塊包括:
[0030]線程啟動子模塊,用于通過多路復用1啟動應用進程與所述消息隊列之間的消息接收線程;
[0031]輪詢子模塊,用于通過所述消息接收線程對所述消息隊列進行輪詢,檢測是否存在未處理的網(wǎng)絡(luò)通知消息;
[0032]獲取子模塊,用于當存在未處理的網(wǎng)絡(luò)通知消息時,所述應用進程獲取所述網(wǎng)絡(luò)通知消息。
[0033]在一個實施例中,所述啟動模塊包括:
[0034]指令接收子模塊,用于接收啟動服務(wù)進程指令,確定啟動與獲取的所述網(wǎng)絡(luò)通知消息對應的服務(wù)進程;
[0035]檢測子模塊,用于檢測所述服務(wù)進程是否已啟動:
[0036]啟動子模塊,用于當所述服務(wù)進程已啟動時,直接使用所述服務(wù)進程;當所述服務(wù)進程并未啟動時,通過所述應用進程啟動所述服務(wù)進程,并將所述服務(wù)進程標識為啟動。
[0037]在一個實施例中,還包括:
[0038]應用進程創(chuàng)建模塊,用于以循環(huán)的方式建立多個應用進程;
[0039]所述裝置中,所述消息隊列為循環(huán)隊列。
[0040]本發(fā)明實施例提供的技術(shù)方案可產(chǎn)生以下有益效果:通過指定的共享端口接收網(wǎng)絡(luò)通知消息并將其存儲至消息隊列;應用進程不斷對所述消息隊列進行輪詢,以獲取未處理的網(wǎng)絡(luò)通知消息;通過所述應用進程啟動與獲取的所述網(wǎng)絡(luò)通知消息對應的服務(wù)進程。該方案使得同一計算機中不同進程共享同一端口來接收網(wǎng)絡(luò)通知消息,解決了啟動多個進程時端口使用沖突的問題,從而不需要為每個進程設(shè)置獨立的接收端口,降低了網(wǎng)絡(luò)資源和計算機系統(tǒng)資源的浪費。
[0041]本發(fā)明的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點可通過在所寫的說明書、權(quán)利要求書、以及附圖中所特別指出的結(jié)構(gòu)來實現(xiàn)和獲得。
[0042]下面通過附圖和實施例,對本發(fā)明的技術(shù)方案做進一步的詳細描述。
【附圖說明】
[0043]附圖用來提供對本發(fā)明的進一步理解,并且構(gòu)成說明書的一部分,與本發(fā)明的實施例一起用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的限制。
[0044]在附圖中:
[0045]圖1為本發(fā)明根據(jù)一示例性實施例示出的一種實現(xiàn)多進程共享端口的數(shù)據(jù)處理方法的流程圖;
[0046]圖2為本發(fā)明根據(jù)一示例性實施例示出的實現(xiàn)多進程共享端口的數(shù)據(jù)處理方法中步驟SlO的實施方式流程圖;
[0047]圖3為本發(fā)明根據(jù)一示例性實施例示出的實現(xiàn)多進程共享端口的數(shù)據(jù)處理方法中步驟S20的實施方式流程圖;
[0048]圖4為本發(fā)明根據(jù)一示例性實施例示出的實現(xiàn)多進程共享端口的數(shù)據(jù)處理方法中步驟S30的實施方式流程圖;
[0049]圖5為本發(fā)明根據(jù)一示例性實施例示出的另一種實現(xiàn)多進程共享端口的數(shù)據(jù)處理方法的實施方式流程圖;
[0050]圖6為本發(fā)明根據(jù)一示例性實施例示出的實現(xiàn)多進程共享端口的數(shù)據(jù)處理裝置的框圖;
[0051]圖7為本發(fā)明根據(jù)一示例性實施例示出的實現(xiàn)多進程共享端口的數(shù)據(jù)處理裝置中信息接收模塊61的框圖;
[0052]圖8為本發(fā)明根據(jù)一示例性實施例示出的實現(xiàn)多進程共享端口的數(shù)據(jù)處理裝置中輪詢模塊62的框圖;
[0053]圖9為本發(fā)明根據(jù)一示例性實施例示出的實現(xiàn)多進程共享端口的數(shù)據(jù)處理裝置中啟動模塊63的框圖;
[0054]圖10為本發(fā)明根據(jù)一示例性實施例示出的另一種實現(xiàn)多進程共享端口的數(shù)據(jù)處理裝置的框圖。
【具體實施方式】
[0055]以下結(jié)合附圖對本發(fā)明的優(yōu)選實施例進行說明,應當理解,此處所描述的優(yōu)選實施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。
[0056]本公開實施例提供了一種實現(xiàn)多進程共享端口的數(shù)據(jù)處理方法,用于提高實現(xiàn)多進程共享端口的數(shù)據(jù)處理的效率,實現(xiàn)視頻的快速搜索。如圖1所示,該方法包括步驟S10-S30:
[0057]在步驟SlO中,通過指定的共享端口接收網(wǎng)絡(luò)通知消息并將其存儲至消息隊列。在一個實施例中,所述消息隊列為循環(huán)隊列。通過所述共享端口接收網(wǎng)絡(luò)通知消息之后,將其順序存儲至所述消息隊列中;且在本公開的一個實施例中,如圖5所示,所述步驟SlO之前還包括:在步驟S40中,以循環(huán)的方式建立多個應用進程;當客戶端發(fā)送的網(wǎng)絡(luò)通知消息被所述共享端口接收之后,其創(chuàng)建的多個應用進程均可以對接收到的網(wǎng)絡(luò)通知消息進行處理。
[0058]在一個實施例中,如圖2所示,步驟SlO可包括:
[0059]步驟S101、啟動應用進程,并通過多路復用1將所述應用進程與消息隊列關(guān)聯(lián)。其中,啟動的所述應用進程為用戶以循環(huán)的方式創(chuàng)建的多個應用進程中的一個或者多個。通過多路復用1可以將啟動的所述應用進程與所述消息隊列關(guān)聯(lián)。
[0060]步驟S102、通過指定的共享端口接收網(wǎng)絡(luò)通知消息。也即,在該實施例中,當將啟動的所述應用進程與所述消息隊列關(guān)聯(lián)之后,指定的所述共享端口才開始接收網(wǎng)絡(luò)通知消息,以便于在后續(xù)步驟中將接收的網(wǎng)絡(luò)通知消息存儲至與啟動的所述應用程序關(guān)聯(lián)的所述消息隊列??衫斫獾模诹硪粚嵤├?,也可以首先接收網(wǎng)絡(luò)通知消息之后,再啟動應用進程,并通過多路復用1將所述應用進程與消息隊列關(guān)聯(lián),這樣同樣可以在后續(xù)步驟中將接收的網(wǎng)絡(luò)通知消息存儲至與啟動的所述應用程序關(guān)聯(lián)的所述消息隊列。
[0061]步驟S103、通過所述多路復用1將所述網(wǎng)絡(luò)通知消息存儲至所述消息隊列。也即,所述共享端口接收的網(wǎng)絡(luò)通知消息通過所述多路復用1存儲至與啟動的所述應用程序關(guān)聯(lián)的所述消息隊列中。且經(jīng)多路復用1存儲至所述消息隊列中的所述網(wǎng)絡(luò)通知消息均可以通過與該消息隊列相關(guān)聯(lián)的所述應用進程進行后續(xù)處理。
[0062]在步驟S20中,應用進程不斷對所述消息隊列進行輪詢,以獲取未處理的網(wǎng)絡(luò)通知消息。
[0063]在一個實施例中,如圖3所示,所述步驟S20可包括:
[0064]步驟S201、通過多路復用1啟動應用進程與所述消息隊列之間的消息接收線程;也即,首先要通過多路復用1啟動所述應用進程與所述消息隊列之間的消息接收線程之后,才可以對所述消息隊列進行輪詢,其中,所述消息隊列為在步驟S1中已經(jīng)與啟動的所述應用進程相關(guān)聯(lián)的消息隊列。
[0065]步驟S202、通過所述消息接收線程對所述消息隊列進行輪詢,檢測是否存在未處理的網(wǎng)絡(luò)通知消息;所述應用進程對所述消息隊列中的網(wǎng)絡(luò)通知消息進行輪詢,檢測是否存在新的網(wǎng)絡(luò)通知消息。
[0066]步驟S203、當存在未處理的網(wǎng)絡(luò)通知消息時,所述應用進程獲取所述網(wǎng)絡(luò)通知消息。當在步驟S202中