專利名稱:數(shù)據(jù)下載請求的處理方法、裝置及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機網(wǎng)絡(luò)技術(shù)領(lǐng)域,具體涉及一種數(shù)據(jù)下載請求的處理方法、裝置及系統(tǒng)。
背景技術(shù):
計算機在運行一個程序時需要的硬件執(zhí)行主體包括CPU、內(nèi)存、硬盤和網(wǎng)絡(luò)IO等,以上各個硬件執(zhí)行主體的運行速度是依次遞減的。雖然CPU的運行速度最快,但是CPU需要網(wǎng)絡(luò)IO提供的資源,而網(wǎng)絡(luò)IO的運行速度很慢,此時運行的程序就只能空等待著網(wǎng)絡(luò)IO提供的資源,這樣在批量下載網(wǎng)絡(luò)資源時,很多時間都被浪費了。傳統(tǒng)的解決辦法是使用同步的多線程或多進程處理方式,在每個線程(進程)中執(zhí)行一個下載任務(wù),由此提高了網(wǎng)絡(luò)資源的下載能力。這種同步的多線程或多進程處理方式仍然存在以下不足:對于每個線程(進程)來說,需要下載獲得網(wǎng)絡(luò)資源之后才能繼續(xù)接收下一個下載任務(wù),線程接收任務(wù)為阻塞方式,下載任務(wù)執(zhí)行效率低下;每個線程(進程)仍沒有充分利用CPU,使得系統(tǒng)的執(zhí)行時間浪費在網(wǎng)絡(luò)等待中。另外,在現(xiàn)有的多線程下載中,由于把下載任務(wù)分配給多個線程處理,因此就需要在多個線程之間進行協(xié)調(diào),由此增加了多線程處理的復(fù)雜度。
發(fā)明內(nèi)容
鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的數(shù)據(jù)下載請求的處理方法和相應(yīng)的數(shù)據(jù)下載請求的處理裝置及系統(tǒng)。根據(jù)本發(fā)明的一個方面,提供了一種數(shù)據(jù)下載請求的處理方法,該處理方法由包括主處理設(shè)備和一個或多個子處理設(shè)備的處理系統(tǒng)執(zhí)行,該處理方法包括步驟:由主處理設(shè)備接收請求方發(fā)送的數(shù)據(jù)下載請求,該數(shù)據(jù)下載請求包括一個或者多個下載任務(wù),并且該數(shù)據(jù)下載請求還包括下載相關(guān)信息,下載相關(guān)信息包括請求處理結(jié)果存儲位置信息;主處理設(shè)備將一個或者多個下載任務(wù)中的每個任務(wù)分發(fā)給相應(yīng)的子處理設(shè)備來進行,并且將下載相關(guān)信息發(fā)送給子處理設(shè)備;子處理設(shè)備執(zhí)行相應(yīng)的下載任務(wù),將下載任務(wù)執(zhí)行結(jié)果存儲到下載相關(guān)信息中的請求處理結(jié)果存儲位置處,以便由請求方從請求處理結(jié)果存儲位置處獲取下載任務(wù)執(zhí)行結(jié)果。根據(jù)本發(fā)明的另一方面,提供了一種數(shù)據(jù)下載請求的處理裝置,包括:主處理設(shè)備和一個或多個子處理設(shè)備;主處理設(shè)備包括:接收模塊,適于接收請求方發(fā)送的數(shù)據(jù)下載請求,該數(shù)據(jù)下載請求包括一個或者多個下載任務(wù),并且該數(shù)據(jù)下載請求還包括下載相關(guān)信息,下載相關(guān)信息包括請求處理結(jié)果存儲位置信息;分發(fā)模塊,適于將一個或者多個下載任務(wù)中的每個任務(wù)分發(fā)給相應(yīng)的子處理設(shè)備來進行,并且將下載相關(guān)信息發(fā)送給子處理設(shè)備;每個子處理設(shè)備包括:任務(wù)執(zhí)行模塊,適于執(zhí)行相應(yīng)的下載任務(wù);至少一個存儲設(shè)備,以及存儲模塊,適于將下載任務(wù)執(zhí)行結(jié)果存儲到下載相關(guān)信息中的請求處理結(jié)果存儲位置所對應(yīng)的存儲設(shè)備中,以便由請求方從請求處理結(jié)果存儲位置處獲取下載任務(wù)執(zhí)行結(jié)果。根據(jù)本發(fā)明的又一方面,提供了一種數(shù)據(jù)下載請求的處理系統(tǒng),包括上述數(shù)據(jù)下載請求的處理裝置以及請求方設(shè)備,請求方設(shè)備適于向數(shù)據(jù)下載請求的處理裝置的主處理設(shè)備發(fā)送數(shù)據(jù)下載請求,以及從請求處理結(jié)果存儲位置處獲取下載任務(wù)執(zhí)行結(jié)果。根據(jù)本發(fā)明提供的數(shù)據(jù)下載請求的處理方法、裝置及系統(tǒng),主處理設(shè)備接收請求方設(shè)備發(fā)送的數(shù)據(jù)下載請求后,將數(shù)據(jù)下載請求中所包括的一個或多個下載任務(wù)分發(fā)給相應(yīng)的子處理設(shè)備來進行,子處理設(shè)備將下載任務(wù)交給內(nèi)核進行處理,子處理設(shè)備接收下載任務(wù)為非阻塞方式,并且通過將下載任務(wù)執(zhí)行結(jié)果存儲到請求方設(shè)備指定的請求處理結(jié)果存儲位置處,使得請求方設(shè)備能夠去相應(yīng)位置查找獲取下載任務(wù)執(zhí)行結(jié)果。本發(fā)明提供的方案無需等待一個下載任務(wù)完成之后繼續(xù)接收下一個下載任務(wù),而是并行執(zhí)行多個下載任務(wù),在所有下載任務(wù)執(zhí)行完成后,請求方設(shè)備一并查找下載任務(wù)執(zhí)行結(jié)果,由此多個下載任務(wù)的執(zhí)行總時間是其中最耗時的下載任務(wù)的執(zhí)行時間,大大提高了下載任務(wù)執(zhí)行的效率;同時明顯提高了 CPU的利用率,充分利用了 CPU的處理能力。上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的具體實施方式
。
通過閱讀下文優(yōu)選實施方式的詳細描述,各種其他的優(yōu)點和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:圖1示出了根據(jù)本發(fā)明一個實施例的數(shù)據(jù)下載請求的處理方法的流程圖;圖2示出了根據(jù)本發(fā)明一個實施例的數(shù)據(jù)下載請求的處理系統(tǒng)的結(jié)構(gòu)框圖。
具體實施例方式下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應(yīng)當(dāng)理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達給本領(lǐng)域的技術(shù)人員。圖1示出了根據(jù)本發(fā)明一個實施例的數(shù)據(jù)下載請求的處理方法100的流程圖。該處理方法100由包括主處理設(shè)備和一個或多個子處理設(shè)備的處理系統(tǒng)執(zhí)行,其中主處理設(shè)備是指執(zhí)行主進程的設(shè)備,子處理設(shè)備是指執(zhí)行子進程的設(shè)備,本方法100是由一個主進程和一個或多個子進程協(xié)同工作來實現(xiàn)的。如圖1所示,方法100始于步驟S101,其中由主處理設(shè)備接收請求方發(fā)送的數(shù)據(jù)下載請求,該數(shù)據(jù)下載請求包括一個或多個下載任務(wù),用于下載網(wǎng)絡(luò)資源。該數(shù)據(jù)下載請求還包括下載相關(guān)信息,該下載相關(guān)信息包括請求處理結(jié)果存儲位置信息??蛇x地,主處理設(shè)備接收的數(shù)據(jù)下載請求可以支持JSON格式。作為一種示例,表I示出了數(shù)據(jù)下載請求所包含的字段的具體內(nèi)容。表1.數(shù)據(jù)下載請求所包含的字段的示意表
權(quán)利要求
1.一種數(shù)據(jù)下載請求的處理方法,該處理方法由包括主處理設(shè)備和一個或多個子處理設(shè)備的處理系統(tǒng)執(zhí)行,該處理方法包括步驟: 由主處理設(shè)備接收請求方發(fā)送的數(shù)據(jù)下載請求,該數(shù)據(jù)下載請求包括一個或者多個下載任務(wù),并且該數(shù)據(jù)下載請求還包括下載相關(guān)信息,所述下載相關(guān)信息包括請求處理結(jié)果存儲位置信息; 所述主處理設(shè)備將所述一個或者多個下載任務(wù)中的每個任務(wù)分發(fā)給相應(yīng)的子處理設(shè)備來進行,并且將所述下載相關(guān)信息發(fā)送給所述子處理設(shè)備; 所述子處理設(shè)備執(zhí)行相應(yīng)的下載任務(wù),將下載任務(wù)執(zhí)行結(jié)果存儲到所述下載相關(guān)信息中的請求處理結(jié)果存儲位置處,以便由請求方從所述請求處理結(jié)果存儲位置處獲取下載任務(wù)執(zhí)行結(jié)果。
2.如權(quán)利要求1所述的處理方法,其中所述下載相關(guān)信息還包括下載數(shù)據(jù)存儲位置信息; 所述方法還包括步驟:如果子處理設(shè)備執(zhí)行下載任務(wù)成功,則把執(zhí)行所述下載任務(wù)所下載的數(shù)據(jù)存儲到所述下載相關(guān)信息中的下載數(shù)據(jù)存儲位置處,并在所述下載任務(wù)執(zhí)行結(jié)果中包括所述下載數(shù)據(jù)在下載數(shù)據(jù)存儲位置中的標識符。
3.如權(quán)利要求1或2所述的處理方法,還包括步驟: 在所述主處理設(shè)備將一個或者多個下載任務(wù)分發(fā)給一個或多個子處理設(shè)備執(zhí)行之后,所述主處理設(shè)備向所述請求方返回分發(fā)成功/失敗消息。
4.如權(quán)利要求1-3中任一個所述的處理方法,所述一個或者多個下載任務(wù)中的每一個下載任務(wù)都包括任務(wù)標識和下 載目標地址。
5.如權(quán)利要求1-4中任一個所述的處理方法,其中 所述下載任務(wù)執(zhí)行結(jié)果包括下載結(jié)果元數(shù)據(jù),所述下載結(jié)果元數(shù)據(jù)包括任務(wù)標識、下載目標地址以及執(zhí)行狀態(tài)信息和/或錯誤信息;以及 所述請求方從所述請求處理結(jié)果存儲位置處獲取下載任務(wù)執(zhí)行結(jié)果包括: 所述請求方從所述請求處理結(jié)果存儲位置處獲取下載結(jié)果元數(shù)據(jù); 根據(jù)所述下載結(jié)果元數(shù)據(jù)中的執(zhí)行狀態(tài)信息和/或錯誤信息判斷下載任務(wù)是否執(zhí)行成功;若成功,則根據(jù)所述下載數(shù)據(jù)在下載數(shù)據(jù)存儲位置中的標識符來獲取所述下載數(shù)據(jù)。
6.一種數(shù)據(jù)下載請求的處理裝置,包括:主處理設(shè)備、一個或多個子處理設(shè)備; 所述主處理設(shè)備包括: 接收模塊,適于接收請求方發(fā)送的數(shù)據(jù)下載請求,該數(shù)據(jù)下載請求包括一個或者多個下載任務(wù),并且該數(shù)據(jù)下載請求還包括下載相關(guān)信息,所述下載相關(guān)信息包括請求處理結(jié)果存儲位置信息; 分發(fā)模塊,適于將所述一個或者多個下載任務(wù)中的每個任務(wù)分發(fā)給相應(yīng)的子處理設(shè)備來進行,并且將所述下載相關(guān)信息發(fā)送給所述子處理設(shè)備; 每個子處理設(shè)備包括: 任務(wù)執(zhí)行模塊,適于執(zhí)行相應(yīng)的下載任務(wù); 存儲模塊,適于將下載任務(wù)執(zhí)行結(jié)果存儲到所述下載相關(guān)信息中的請求處理結(jié)果存儲位置所對應(yīng)的存儲設(shè)備中,以便由請求方從所述請求處理結(jié)果存儲位置處獲取下載任務(wù)執(zhí)行結(jié)果。
7.如權(quán)利要求6所述的處理裝置,所述下載相關(guān)信息還包括下載數(shù)據(jù)存儲位置信息; 所述存儲模塊還適于如果所述任務(wù)執(zhí)行模塊執(zhí)行下載任務(wù)成功,則把執(zhí)行所述下載任務(wù)所下載的數(shù)據(jù)存儲到所述下載相關(guān)信息中的下載數(shù)據(jù)存儲位置所對應(yīng)的存儲設(shè)備中,并在所述下載任務(wù)執(zhí)行結(jié)果中包括所述下載數(shù)據(jù)在下載數(shù)據(jù)存儲位置中的標識符。
8.如權(quán)利要求6或7所述的處理裝置,所述主處理設(shè)備還包括:發(fā)送模塊,適于在所述分發(fā)模塊將一個或者多個下載任務(wù)分發(fā)給一個或多個子處理設(shè)備執(zhí)行之后,向所述請求方返回分發(fā)成功/失敗消息。
9.一種數(shù)據(jù)下載請求的處理系統(tǒng),包括上述權(quán)利要求6至8中的任一個所述的數(shù)據(jù)下載請求的處理裝置以及請求方設(shè)備,所述請求方設(shè)備適于向所述數(shù)據(jù)下載請求的處理裝置的主處理設(shè)備發(fā)送數(shù)據(jù)下載請求,以及從所述請求處理結(jié)果存儲位置處獲取下載任務(wù)執(zhí)行結(jié)果。
10.如權(quán)利要求9所述的處理系統(tǒng),所述下載任務(wù)執(zhí)行結(jié)果包括下載結(jié)果元數(shù)據(jù),所述下載結(jié)果元數(shù)據(jù)包括任務(wù)標識、下載目標地址以及執(zhí)行狀態(tài)信息和/或錯誤信息; 所述請求方設(shè)備包括: 網(wǎng)絡(luò)接口,適于向主處理設(shè)備發(fā)送數(shù)據(jù)下載請求,以及接收主處理設(shè)備返回的分發(fā)成功/失敗消息; 獲取模塊,適于通過所述網(wǎng)絡(luò)接口從所述請求處理結(jié)果存儲位置處獲取下載結(jié)果元數(shù)據(jù); 判斷模塊,適于根據(jù)所述下載結(jié)果元數(shù)據(jù)中的執(zhí)行狀態(tài)信息和/或錯誤信息判斷下載任務(wù)是否執(zhí)行成功; 調(diào)取模塊,適于在所述判斷模塊判斷出下載任務(wù)執(zhí)行成功的情況下,根據(jù)所述下載數(shù)據(jù)在下載數(shù)據(jù)存儲位置中的標識符通過所述網(wǎng)絡(luò)接口來獲取所述下載數(shù)據(jù)。
全文摘要
本發(fā)明公開了一種數(shù)據(jù)下載請求的處理方法、裝置及系統(tǒng)。其中處理方法包括步驟由主處理設(shè)備接收請求方發(fā)送的數(shù)據(jù)下載請求,該數(shù)據(jù)下載請求包括一個或者多個下載任務(wù);主處理設(shè)備將一個或者多個下載任務(wù)中的每個任務(wù)分發(fā)給相應(yīng)的子處理設(shè)備來進行;子處理設(shè)備執(zhí)行相應(yīng)的下載任務(wù),將下載任務(wù)執(zhí)行結(jié)果存儲到下載相關(guān)信息中的請求處理結(jié)果存儲位置處,以便由請求方從請求處理結(jié)果存儲位置處獲取下載任務(wù)執(zhí)行結(jié)果。本發(fā)明提供的方案無需等待一個下載任務(wù)完成之后繼續(xù)接收下一個下載任務(wù),而是并行執(zhí)行多個下載任務(wù),在所有下載任務(wù)執(zhí)行完成后,請求方設(shè)備一并查找下載任務(wù)執(zhí)行結(jié)果,大大提高了下載任務(wù)執(zhí)行的效率。
文檔編號G06F9/44GK103207785SQ20131014342
公開日2013年7月17日 申請日期2013年4月23日 優(yōu)先權(quán)日2013年4月23日
發(fā)明者呂本偉, 楊濤, 汪雨田 申請人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司