本發(fā)明涉及計算機(jī)技術(shù)領(lǐng)域,尤其涉及一種組裝文件的方法及裝置。
背景技術(shù):
當(dāng)前,企業(yè)的信息系統(tǒng)的數(shù)據(jù)庫中一般會存儲的大量的業(yè)務(wù)數(shù)據(jù),很多情況下,需要將這些業(yè)務(wù)數(shù)據(jù)組裝成文件以供工作人員瀏覽或者傳輸給其他系統(tǒng)。例如在網(wǎng)商的系統(tǒng)中的數(shù)據(jù)庫中存儲了一些銀行的業(yè)務(wù)數(shù)據(jù),需要定期將這些業(yè)務(wù)數(shù)據(jù)組裝成對賬文件供工作人員瀏覽并進(jìn)行對賬分析。
其中,當(dāng)需要將大量的數(shù)據(jù)組裝成文件時,首先需要從數(shù)據(jù)庫中依次讀取該大量的數(shù)據(jù)中的每一條數(shù)據(jù),然后將讀取的所有數(shù)據(jù)組裝成文件。
然而,發(fā)明人發(fā)現(xiàn):首先,從數(shù)據(jù)庫中依次讀取該大量的數(shù)據(jù)中的每一條數(shù)據(jù)所需花費(fèi)的時間較多,這樣會降低組裝文件的效率。其次,在從數(shù)據(jù)庫中依次讀取該大量的數(shù)據(jù)中的每一條數(shù)據(jù)的過程中,如果出現(xiàn)未成功讀取到某一條數(shù)據(jù)的情況或出現(xiàn)某一數(shù)據(jù)組裝失敗的情況,則已經(jīng)讀取到的所有數(shù)據(jù)均作廢且已經(jīng)組裝的所有數(shù)據(jù)也均已作廢,需要重新執(zhí)行從數(shù)據(jù)庫中依次讀取該大量的數(shù)據(jù)中的每一條數(shù)據(jù)的流程;這樣就會耗費(fèi)較多的時間,同樣會降低組裝文件的效率。
技術(shù)實(shí)現(xiàn)要素:
為克服相關(guān)技術(shù)中存在的問題,本發(fā)明提供一種組裝文件的方法及裝置。
根據(jù)本發(fā)明實(shí)施例的第一方面,提供一種組裝文件的方法,所述方法包括:
當(dāng)需要將數(shù)據(jù)標(biāo)識集合中的每一個數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù)組裝成目標(biāo)文件時,將所述數(shù)據(jù)標(biāo)識集合拆分為多個數(shù)據(jù)標(biāo)識子集合;任意兩個數(shù)據(jù)標(biāo)識子集合中的數(shù)據(jù)標(biāo)識不重合;
同時分別獲取每一個數(shù)據(jù)標(biāo)識子集合中的數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù),并將每一個數(shù)據(jù)標(biāo)識子集合中的數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù)分別組裝成一個子文件;
將組裝得到的所有子文件進(jìn)行合并得到目標(biāo)文件。
其中,所述同時分別獲取每一個數(shù)據(jù)標(biāo)識子集合中的數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù),包括;
獲取目標(biāo)數(shù)量個工作線程;目標(biāo)數(shù)量與所述多個數(shù)據(jù)標(biāo)識子集合的數(shù)量相同;
為每一個數(shù)據(jù)標(biāo)識子集合分別生成數(shù)據(jù)獲取任務(wù);
分別為每一個工作線程分配一個數(shù)據(jù)獲取任務(wù);為不同的工作線程分配的數(shù)據(jù)獲取任務(wù)不同;
同時利用每一個工作線程執(zhí)行為其分配的數(shù)據(jù)獲取任務(wù)。
其中,所述獲取目標(biāo)數(shù)量個工作線程,包括:
從與本地相連的預(yù)設(shè)服務(wù)器群組中選擇目標(biāo)數(shù)量個服務(wù)器;從選擇出的每一個服務(wù)器中分別獲取一個空閑的工作線程,得到目標(biāo)數(shù)量個工作線程;
或者,
從本地獲取目標(biāo)數(shù)量個空閑的工作線程。
其中,所述將每一個數(shù)據(jù)標(biāo)識子集合中的數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù)分別組裝成一個子文件,包括:
對于每一個數(shù)據(jù)標(biāo)識子集合,生成一個空子文件,并將獲取的所述數(shù)據(jù)標(biāo)識子集合中的所有數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù)依次填入生成的空子文件中,得到一個子文件。
其中,所述將組裝得到的所有子文件進(jìn)行合并得到目標(biāo)文件,包括:
檢測組裝得到的子文件的數(shù)量是否等于目標(biāo)數(shù)量;
當(dāng)組裝得到的子文件的數(shù)量等于目標(biāo)數(shù)量時,生成一個空文件;
將組裝得到的每一個子文件分別填入所述空文件中,得到目標(biāo)文件。
進(jìn)一步地,所述方法還包括:
當(dāng)所述目標(biāo)文件中的數(shù)據(jù)為多個時,在所述目標(biāo)文件中,將任意相鄰的數(shù)據(jù)之間利用預(yù)設(shè)分隔符進(jìn)行分隔。
根據(jù)本發(fā)明實(shí)施例的第二方面,提供一種組裝文件的裝置,所述裝置包括:
拆分模塊,用于當(dāng)需要將數(shù)據(jù)標(biāo)識集合中的每一個數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù)組裝成目標(biāo)文件時,將所述數(shù)據(jù)標(biāo)識集合拆分為多個數(shù)據(jù)標(biāo)識子集合;任意兩個數(shù)據(jù)標(biāo)識子集合中的數(shù)據(jù)標(biāo)識不重合;
獲取模塊,用于同時分別獲取每一個數(shù)據(jù)標(biāo)識子集合中的數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù);
組裝模塊,用于將每一個數(shù)據(jù)標(biāo)識子集合中的數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù)分別組裝成一個子文件;
合并模塊,用于將組裝得到的所有子文件進(jìn)行合并得到目標(biāo)文件。
其中,所述獲取模塊包括;
獲取單元,用于獲取目標(biāo)數(shù)量個工作線程;目標(biāo)數(shù)量與所述多個數(shù)據(jù)標(biāo)識子集合的數(shù)量相同;
第一生成單元,用于為每一個數(shù)據(jù)標(biāo)識子集合分別生成數(shù)據(jù)獲取任務(wù);
分配單元,用于分別為每一個工作線程分配一個數(shù)據(jù)獲取任務(wù);為不同的工作線程分配的數(shù)據(jù)獲取任務(wù)不同;
執(zhí)行單元,用于同時利用每一個工作線程執(zhí)行為其分配的數(shù)據(jù)獲取任務(wù)。
其中,所述獲取單元包括:
選擇子單元,用于從與本地相連的預(yù)設(shè)服務(wù)器群組中選擇目標(biāo)數(shù)量個服務(wù)器;第一獲取子單元,用于從選擇出的每一個服務(wù)器中分別獲取一個空閑的工作線程,得到目標(biāo)數(shù)量個工作線程;
或者,
第二獲取子單元,用于從本地獲取目標(biāo)數(shù)量個空閑的工作線程。
其中,所述組裝模塊具體用于對于每一個數(shù)據(jù)標(biāo)識子集合,生成一個空子文件,并將獲取的所述數(shù)據(jù)標(biāo)識子集合中的所有數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù)依次填入生成的空子文件中,得到一個子文件。
其中,所述合并模塊包括:
檢測單元,用于檢測組裝得到的子文件的數(shù)量是否等于目標(biāo)數(shù)量;
第二生成單元,用于當(dāng)組裝得到的子文件的數(shù)量等于目標(biāo)數(shù)量時,生成一個空文件;
填入單元,用于將組裝得到的每一個子文件分別填入所述空文件中,得到目標(biāo)文件。
其中,所述合并模塊還包括:
分隔單元,用于當(dāng)所述目標(biāo)文件中的數(shù)據(jù)為多個時,在所述目標(biāo)文件中,將任意相鄰的數(shù)據(jù)之間利用預(yù)設(shè)分隔符進(jìn)行分隔。
本發(fā)明的實(shí)施例提供的技術(shù)方案可以包括以下有益效果:
假設(shè),在現(xiàn)有技術(shù)中,獲取每一條數(shù)據(jù)所需花費(fèi)的時間都是相同的,在本發(fā)明實(shí)施例中,獲取每一條數(shù)據(jù)所需花費(fèi)的時間也都是相同的,且在現(xiàn)有技術(shù)中獲取一條數(shù)據(jù)所需花費(fèi)的時間與在本發(fā)明實(shí)施例中獲取一條數(shù)據(jù)所需花費(fèi)的時間相同。
在現(xiàn)有技術(shù)中,第一服務(wù)器需要依次獲取大量的數(shù)據(jù)中的每一條數(shù)據(jù),然后將讀取的所有數(shù)據(jù)組裝成文件?,F(xiàn)有技術(shù)獲取數(shù)據(jù)的整個過程相當(dāng)于是串行獲取,則獲取數(shù)據(jù)的整 個過程需要花費(fèi)的時間為需要獲取的數(shù)據(jù)的數(shù)量與獲取一條數(shù)據(jù)需要花費(fèi)的時間之間的乘積。
而在本發(fā)明實(shí)施例中,當(dāng)需要將數(shù)據(jù)標(biāo)識集合中的每一個數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù)組裝成目標(biāo)文件時,將數(shù)據(jù)標(biāo)識集合拆分為多個數(shù)據(jù)標(biāo)識子集合;任意兩個數(shù)據(jù)標(biāo)識子集合中的數(shù)據(jù)標(biāo)識不重合;同時分別獲取每一個數(shù)據(jù)標(biāo)識子集合中的數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù)。本發(fā)明實(shí)施例獲取數(shù)據(jù)的整個過程相當(dāng)于是并行獲取,則獲取數(shù)據(jù)的整個過程需要花費(fèi)的時間取決于多個數(shù)據(jù)標(biāo)識子集合中包括的數(shù)據(jù)標(biāo)識的數(shù)量最多的數(shù)據(jù)標(biāo)識子集合;獲取數(shù)據(jù)的整個過程需要花費(fèi)的時間為包括的數(shù)據(jù)標(biāo)識的數(shù)量最多的數(shù)據(jù)標(biāo)識子集合中的數(shù)據(jù)標(biāo)識的數(shù)量與獲取一條數(shù)據(jù)需要花費(fèi)的時間之間的乘積。由于包括的數(shù)據(jù)標(biāo)識的數(shù)量最多的數(shù)據(jù)標(biāo)識子集合中的數(shù)據(jù)標(biāo)識的數(shù)量必然小于所有需要獲取的數(shù)據(jù)的數(shù)量,因此,相對于現(xiàn)有技術(shù)中,本發(fā)明實(shí)施例可以減少獲取數(shù)據(jù)的整個過程需要花費(fèi)的時間,從而提高獲取數(shù)據(jù)的效率,進(jìn)而提高組裝文件的效率。
例如,假設(shè),在現(xiàn)有技術(shù)中,獲取每一條數(shù)據(jù)所需花費(fèi)的時間都是1s,總共需要獲取100條不同的數(shù)據(jù);在本發(fā)明實(shí)施例中,獲取每一條數(shù)據(jù)所需花費(fèi)的時間也是1s,總共需要獲取100條不同的數(shù)據(jù)。則在現(xiàn)有技術(shù)中需要花費(fèi)100s才能獲取完這100條數(shù)據(jù)。假設(shè)本發(fā)明實(shí)施例中包括10個數(shù)據(jù)標(biāo)識子集合,每個數(shù)據(jù)標(biāo)識子集合中包括10個數(shù)據(jù)標(biāo)識,則對于任意一個數(shù)據(jù)標(biāo)識子集合,獲取該數(shù)據(jù)標(biāo)識子集合中的所有數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù)所需要的時間為10s,由于是同時分別獲取這10個數(shù)據(jù)標(biāo)識子集合中的每一個數(shù)據(jù)標(biāo)識子集合中的數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù),因此整個流程只需花費(fèi)10s,遠(yuǎn)遠(yuǎn)小于現(xiàn)有技術(shù)中所需花費(fèi)的100s,從而可以提高數(shù)據(jù)獲取效率,進(jìn)而提高組裝文件的效率。
其次,在本發(fā)明實(shí)施例中,獲取不同的數(shù)據(jù)標(biāo)識子集合中的數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù)的流程相互之間的獨(dú)立的,不會相互影響。也即,當(dāng)依次獲取某一數(shù)據(jù)標(biāo)識子集合中的數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù)時,如果在獲取某一數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù)時獲取失敗,則只需重新執(zhí)行獲取某一數(shù)據(jù)標(biāo)識子集合中的數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù)的步驟,而不會對獲取其他數(shù)據(jù)標(biāo)識子集合中的數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù)造成影響。
例如,假設(shè)獲取一條數(shù)據(jù)的時間為1s,總共需要獲取100條不同的數(shù)據(jù),假設(shè)在現(xiàn)有技術(shù)和本發(fā)明實(shí)施例中分別出現(xiàn)了一次獲取一條數(shù)據(jù)時獲取失敗的請求情況。在現(xiàn)有技術(shù)中,假設(shè)在獲取第95條數(shù)據(jù)時獲取失敗,則需要從第1條數(shù)據(jù)重新開始獲取,這樣就白白花費(fèi)了從獲取第1條數(shù)據(jù)至第95條數(shù)據(jù)的過程花費(fèi)的時間,也即花費(fèi)了95s。而在本發(fā)明實(shí)施例中,第95條數(shù)據(jù)的數(shù)據(jù)標(biāo)識會位于多個數(shù)據(jù)標(biāo)識子集合中的一個數(shù)據(jù)標(biāo)識子集合,即使第95條數(shù)據(jù)的數(shù)據(jù)標(biāo)識是該數(shù)據(jù)標(biāo)識子集合中的最后一個數(shù)據(jù)標(biāo)識,也即第10個數(shù)據(jù)標(biāo)識,當(dāng)依次獲取該數(shù)據(jù)標(biāo)識子集合中的數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù)時,假設(shè)在根據(jù)第95條數(shù)據(jù)的數(shù)據(jù)標(biāo)識獲取第95條數(shù)據(jù)時獲取失敗,需要重新根據(jù)該數(shù)據(jù)標(biāo)識子集合中的第1條數(shù) 據(jù)標(biāo)識開始獲取數(shù)據(jù),這樣會白白花費(fèi)了從獲取第1個數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù)至獲取第10個數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù)的過程花費(fèi)的時間,也即花費(fèi)了10s,遠(yuǎn)遠(yuǎn)小于現(xiàn)有技術(shù)中的花費(fèi)時間95s,從而可以提高獲取數(shù)據(jù)的效率,進(jìn)而提高組裝文件的效率。
在上述例子中,在現(xiàn)有技術(shù)中,假設(shè)第二次從第1條數(shù)據(jù)重新開始獲取時順利地獲取到了這100條數(shù)據(jù),一共花費(fèi)了100s,加上之前花費(fèi)的95s,整個獲取流程一共花費(fèi)了195s。而在本發(fā)明實(shí)施例中,假設(shè)第二次重新根據(jù)該數(shù)據(jù)標(biāo)識子集合中的第1條數(shù)據(jù)標(biāo)識開始獲取數(shù)據(jù)時順利地獲取到了該數(shù)據(jù)標(biāo)識子集合中的10個數(shù)據(jù)標(biāo)識分別對應(yīng)的數(shù)據(jù),一共花費(fèi)了10s,加上之前第一次花費(fèi)的10s,一共花費(fèi)了20s,由于在第一次花費(fèi)的10s內(nèi)就分別獲取完了其它9個數(shù)據(jù)標(biāo)識子集合中每一個數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù),因此整個獲取流程一共花費(fèi)了20s,遠(yuǎn)遠(yuǎn)小于現(xiàn)有技術(shù)中的195s,從而可以提高獲取數(shù)據(jù)的效率,進(jìn)而提高組裝文件的效率。
應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性和解釋性的,并不能限制本發(fā)明。
附圖說明
此處的附圖被并入說明書中并構(gòu)成本說明書的一部分,示出了符合本發(fā)明的實(shí)施例,并與說明書一起用于解釋本發(fā)明的原理。
圖1是根據(jù)一示例性實(shí)施例示出的一種組裝文件的方法的流程圖;
圖2是根據(jù)一示例性實(shí)施例示出的一種組裝文件的裝置的框圖。
具體實(shí)施方式
這里將詳細(xì)地對示例性實(shí)施例進(jìn)行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實(shí)施例中所描述的實(shí)施方式并不代表與本發(fā)明相一致的所有實(shí)施方式。相反,它們僅是與如所附權(quán)利要求書中所詳述的、本發(fā)明的一些方面相一致的裝置和方法的例子。
圖1是根據(jù)一示例性實(shí)施例示出的一種組裝文件的方法的流程圖,如圖1所示,該方法應(yīng)用于第一服務(wù)器中,該方法方法包括以下步驟。
在步驟s101中,當(dāng)需要將數(shù)據(jù)標(biāo)識集合中的每一個數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù)組裝成目標(biāo)文件時,將數(shù)據(jù)標(biāo)識集合拆分為多個數(shù)據(jù)標(biāo)識子集合;
其中,任意兩個數(shù)據(jù)標(biāo)識子集合中的數(shù)據(jù)標(biāo)識不重合。
在本發(fā)明實(shí)施例中,數(shù)據(jù)標(biāo)識可以為數(shù)據(jù)的名稱或編號,也可以為生成數(shù)據(jù)的時間或生成數(shù)據(jù)的地點(diǎn)等等。
其中,以數(shù)據(jù)標(biāo)識為生成數(shù)據(jù)的時間為例進(jìn)行舉例說明,但不作為對本發(fā)明保護(hù)范圍的限制。當(dāng)?shù)谝环?wù)器生成一條數(shù)據(jù)時,就會獲取第一服務(wù)器的當(dāng)前時刻,將獲取的當(dāng)前時刻作為生成的數(shù)據(jù)的數(shù)據(jù)標(biāo)識,具體地,可以將該當(dāng)前時刻存儲在生成的數(shù)據(jù)的數(shù)據(jù)標(biāo)識字段中。
例如,假設(shè)用戶需要第一服務(wù)器獲取在2點(diǎn)至3點(diǎn)內(nèi)的生成的所有數(shù)據(jù),數(shù)據(jù)標(biāo)識為2點(diǎn)至3點(diǎn)之間的每一秒,由于2點(diǎn)至3點(diǎn)一共有3600秒,因此,一共有3600個不同的數(shù)據(jù)標(biāo)識,數(shù)據(jù)標(biāo)識集合為這3600個數(shù)據(jù)標(biāo)識組成的集合。用戶可以在第一服務(wù)器中輸入組裝目標(biāo)文件的組裝請求,該組裝請求攜帶該數(shù)據(jù)標(biāo)識集合。當(dāng)?shù)谝环?wù)器接收到用戶輸入的該組裝請求時,確定需要將數(shù)據(jù)標(biāo)識集合中的每一個數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù)組裝成目標(biāo)文件。然后將數(shù)據(jù)表示集合中的3600個數(shù)據(jù)標(biāo)識拆分為12份,每一份包括300個數(shù)據(jù)標(biāo)識。再將每一份數(shù)據(jù)標(biāo)識分別組成一個數(shù)據(jù)標(biāo)識子集合,得到12個數(shù)據(jù)標(biāo)識子集合,每個數(shù)據(jù)標(biāo)識子集合包括300個數(shù)據(jù)標(biāo)識。且每一個數(shù)據(jù)標(biāo)識僅會存儲在一個數(shù)據(jù)標(biāo)識子集合中。
在步驟s102中,同時分別獲取每一個數(shù)據(jù)標(biāo)識子集合中的數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù),并將每一個數(shù)據(jù)標(biāo)識子集合中的數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù)分別組裝成一個子文件;
具體地,同時分別獲取每一個數(shù)據(jù)標(biāo)識子集合中的數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù),包括;
1021、獲取目標(biāo)數(shù)量個工作線程;
其中,目標(biāo)數(shù)量與多個數(shù)據(jù)標(biāo)識子集合的數(shù)量相同;
在本發(fā)明一個實(shí)施例中,第一服務(wù)器本地可能存在多個工作線程,因此,當(dāng)?shù)谝环?wù)器本地空閑的工作線程的數(shù)量大于或等于拆分得到的多個數(shù)據(jù)標(biāo)識子集合的數(shù)量時,第一服務(wù)器可以從本地獲取目標(biāo)數(shù)量個空閑的工作線程。
在本發(fā)明另一實(shí)施例中,技術(shù)人員事先會設(shè)置一個預(yù)設(shè)服務(wù)器群組,預(yù)設(shè)服務(wù)器群組中包括多個第二服務(wù)器,每一個第二服務(wù)器均與第一服務(wù)器相連接。這樣,為了使得預(yù)設(shè)服務(wù)器群組中包括的各個第二服務(wù)器之間負(fù)載均衡,第一服務(wù)器可以從預(yù)設(shè)服務(wù)器群組中選擇目標(biāo)數(shù)量個第二服務(wù)器,再從選擇出的每一個第二服務(wù)器中分別獲取一個空閑的工作線程,得到目標(biāo)數(shù)量個工作線程。
1022、為每一個數(shù)據(jù)標(biāo)識子集合分別生成數(shù)據(jù)獲取任務(wù);
對于任意一個數(shù)據(jù)標(biāo)識子集合,根據(jù)該數(shù)據(jù)標(biāo)識子集合中的數(shù)據(jù)標(biāo)識生成一個數(shù)據(jù)獲取任務(wù);對于其他每一個數(shù)據(jù)標(biāo)識子集合,均執(zhí)行上述操作。最終得到目標(biāo)數(shù)量個數(shù)據(jù)獲取任務(wù)。
1023、分別為每一個工作線程分配一個數(shù)據(jù)獲取任務(wù);
其中,為不同的工作線程分配的數(shù)據(jù)獲取任務(wù)不同。
1024、同時利用每一個工作線程執(zhí)行為其分配的數(shù)據(jù)獲取任務(wù)。
如果工作線程是第一服務(wù)器從本地獲取的,則對于獲取的任意一個工作線程,第一服務(wù)器可以控制該工作線程執(zhí)行為該工作線程分配的數(shù)據(jù)獲取任務(wù),對于獲取的其他每一個工作線程,同樣執(zhí)行上述操作;且第一服務(wù)器是同時控制每一個工作線程執(zhí)行為各自分配的數(shù)據(jù)獲取任務(wù)。
如果工作線程是第一服務(wù)器從預(yù)設(shè)服務(wù)器群組中的目標(biāo)個數(shù)個第二服務(wù)器中分別獲取到的。則對于獲取的任意一個工作線程,將為該工作線程分配的數(shù)據(jù)獲取任務(wù)發(fā)送至該工作線程所在第二服務(wù)器中,以使第二服務(wù)器控制該工作線程執(zhí)行為該工作線程分配的數(shù)據(jù)獲取任務(wù),對于獲取的其他每一個工作線程,同樣執(zhí)行上述操作。且第一服務(wù)器是是同時向每個第二服務(wù)器分別發(fā)送數(shù)據(jù)獲取任務(wù)的,以使所有第二服務(wù)器能夠同時控制本地被第一服務(wù)器獲取的工作線程執(zhí)行為其分配的數(shù)據(jù)獲取任務(wù)。
另外,在本步驟中,將每一個數(shù)據(jù)標(biāo)識子集合中的數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù)分別組裝成一個子文件,包括:
對于每一個數(shù)據(jù)標(biāo)識子集合,生成一個空子文件,并將獲取的數(shù)據(jù)標(biāo)識子集合中的所有數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù)依次填入生成的空子文件中,得到一個子文件。
其中,對于任意一個數(shù)據(jù)標(biāo)識子集合,當(dāng)獲取到該數(shù)據(jù)標(biāo)識子集合中的每一個數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù)時,就生成一個空子文件,然后將獲取到的該數(shù)據(jù)標(biāo)識子集合中的每一個數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù)依次填入該空子文件中,得到一個子文件。對于其他每一個數(shù)據(jù)標(biāo)識子集合,同樣如此。
在步驟s103中,將組裝得到的所有子文件進(jìn)行合并得到目標(biāo)文件。
其中,在步驟s101中將數(shù)據(jù)標(biāo)識集合拆分為了多個數(shù)據(jù)標(biāo)識子集合,在步驟s102中會將每一個數(shù)據(jù)標(biāo)識子集合中的數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù)分別組裝成一個子文件,最終得到目標(biāo)數(shù)量個子文件,在本發(fā)明實(shí)施例中,需要在組裝得到的子文件的數(shù)量與多個數(shù)據(jù)標(biāo)識子集合的數(shù)量相同時,才能將得到的所有子文件進(jìn)行合并。
因此,在本步驟中,需要檢測組裝得到的子文件的數(shù)量是否等于目標(biāo)數(shù)量;當(dāng)組裝得到的子文件的數(shù)量等于目標(biāo)數(shù)量時,生成一個空文件;將組裝得到的每一個子文件分別填入空文件中,得到目標(biāo)文件。
進(jìn)一步地,當(dāng)合并得到目標(biāo)文件之后,用戶可能會需要瀏覽目標(biāo)文件中的數(shù)據(jù),由于目標(biāo)文件中會包含多個不同數(shù)據(jù),為了使得用戶在瀏覽目標(biāo)文件的數(shù)據(jù)時能夠?qū)δ繕?biāo)文件 中包含的多個不同數(shù)據(jù)進(jìn)行區(qū)分,在合并得到的目標(biāo)文件中,需要在任意相鄰的兩個數(shù)據(jù)之間添加預(yù)設(shè)分隔符,以將任意兩個相鄰的數(shù)據(jù)進(jìn)行分隔,進(jìn)而方便用戶瀏覽。預(yù)設(shè)分隔符可以為“/”或“|”等,本發(fā)明對此不加以限定。
假設(shè),在現(xiàn)有技術(shù)中,獲取每一條數(shù)據(jù)所需花費(fèi)的時間都是相同的,在本發(fā)明實(shí)施例中,獲取每一條數(shù)據(jù)所需花費(fèi)的時間也都是相同的,且在現(xiàn)有技術(shù)中獲取一條數(shù)據(jù)所需花費(fèi)的時間與在本發(fā)明實(shí)施例中獲取一條數(shù)據(jù)所需花費(fèi)的時間相同。
在現(xiàn)有技術(shù)中,第一服務(wù)器需要依次獲取大量的數(shù)據(jù)中的每一條數(shù)據(jù),然后將讀取的所有數(shù)據(jù)組裝成文件?,F(xiàn)有技術(shù)獲取數(shù)據(jù)的整個過程相當(dāng)于是串行獲取,則獲取數(shù)據(jù)的整個過程需要花費(fèi)的時間為需要獲取的數(shù)據(jù)的數(shù)量與獲取一條數(shù)據(jù)需要花費(fèi)的時間之間的乘積。
而在本發(fā)明實(shí)施例中,當(dāng)需要將數(shù)據(jù)標(biāo)識集合中的每一個數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù)組裝成目標(biāo)文件時,將數(shù)據(jù)標(biāo)識集合拆分為多個數(shù)據(jù)標(biāo)識子集合;任意兩個數(shù)據(jù)標(biāo)識子集合中的數(shù)據(jù)標(biāo)識不重合;同時分別獲取每一個數(shù)據(jù)標(biāo)識子集合中的數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù)。本發(fā)明實(shí)施例獲取數(shù)據(jù)的整個過程相當(dāng)于是并行獲取,則獲取數(shù)據(jù)的整個過程需要花費(fèi)的時間取決于多個數(shù)據(jù)標(biāo)識子集合中包括的數(shù)據(jù)標(biāo)識的數(shù)量最多的數(shù)據(jù)標(biāo)識子集合;獲取數(shù)據(jù)的整個過程需要花費(fèi)的時間為包括的數(shù)據(jù)標(biāo)識的數(shù)量最多的數(shù)據(jù)標(biāo)識子集合中的數(shù)據(jù)標(biāo)識的數(shù)量與獲取一條數(shù)據(jù)需要花費(fèi)的時間之間的乘積。由于包括的數(shù)據(jù)標(biāo)識的數(shù)量最多的數(shù)據(jù)標(biāo)識子集合中的數(shù)據(jù)標(biāo)識的數(shù)量必然小于所有需要獲取的數(shù)據(jù)的數(shù)量,因此,相對于現(xiàn)有技術(shù)中,本發(fā)明實(shí)施例可以減少獲取數(shù)據(jù)的整個過程需要花費(fèi)的時間,從而提高獲取數(shù)據(jù)的效率,進(jìn)而提高組裝文件的效率。
例如,假設(shè),在現(xiàn)有技術(shù)中,獲取每一條數(shù)據(jù)所需花費(fèi)的時間都是1s,總共需要獲取100條不同的數(shù)據(jù);在本發(fā)明實(shí)施例中,獲取每一條數(shù)據(jù)所需花費(fèi)的時間也是1s,總共需要獲取100條不同的數(shù)據(jù)。則在現(xiàn)有技術(shù)中需要花費(fèi)100s才能獲取完這100條數(shù)據(jù)。假設(shè)本發(fā)明實(shí)施例中包括10個數(shù)據(jù)標(biāo)識子集合,每個數(shù)據(jù)標(biāo)識子集合中包括10個數(shù)據(jù)標(biāo)識,則對于任意一個數(shù)據(jù)標(biāo)識子集合,獲取該數(shù)據(jù)標(biāo)識子集合中的所有數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù)所需要的時間為10s,由于是同時分別獲取這10個數(shù)據(jù)標(biāo)識子集合中的每一個數(shù)據(jù)標(biāo)識子集合中的數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù),因此整個流程只需花費(fèi)10s,遠(yuǎn)遠(yuǎn)小于現(xiàn)有技術(shù)中所需花費(fèi)的100s,從而可以提高數(shù)據(jù)獲取效率,進(jìn)而提高組裝文件的效率。
其次,在本發(fā)明實(shí)施例中,獲取不同的數(shù)據(jù)標(biāo)識子集合中的數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù)的流程相互之間的獨(dú)立的,不會相互影響。也即,當(dāng)依次獲取某一數(shù)據(jù)標(biāo)識子集合中的數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù)時,如果在獲取某一數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù)時獲取失敗,則只需重新執(zhí)行獲取某一數(shù)據(jù)標(biāo)識子集合中的數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù)的步驟,而不會對獲取其他數(shù)據(jù)標(biāo)識子集合 中的數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù)造成影響。
例如,假設(shè)獲取一條數(shù)據(jù)的時間為1s,總共需要獲取100條不同的數(shù)據(jù),假設(shè)在現(xiàn)有技術(shù)和本發(fā)明實(shí)施例中分別出現(xiàn)了一次獲取一條數(shù)據(jù)時獲取失敗的請求情況。在現(xiàn)有技術(shù)中,假設(shè)在獲取第95條數(shù)據(jù)時獲取失敗,則需要從第1條數(shù)據(jù)重新開始獲取,這樣就白白花費(fèi)了從獲取第1條數(shù)據(jù)至第95條數(shù)據(jù)的過程花費(fèi)的時間,也即花費(fèi)了95s。而在本發(fā)明實(shí)施例中,第95條數(shù)據(jù)的數(shù)據(jù)標(biāo)識會位于多個數(shù)據(jù)標(biāo)識子集合中的一個數(shù)據(jù)標(biāo)識子集合,即使第95條數(shù)據(jù)的數(shù)據(jù)標(biāo)識是該數(shù)據(jù)標(biāo)識子集合中的最后一個數(shù)據(jù)標(biāo)識,也即第10個數(shù)據(jù)標(biāo)識,當(dāng)依次獲取該數(shù)據(jù)標(biāo)識子集合中的數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù)時,假設(shè)在根據(jù)第95條數(shù)據(jù)的數(shù)據(jù)標(biāo)識獲取第95條數(shù)據(jù)時獲取失敗,需要重新根據(jù)該數(shù)據(jù)標(biāo)識子集合中的第1條數(shù)據(jù)標(biāo)識開始獲取數(shù)據(jù),這樣會白白花費(fèi)了從獲取第1個數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù)至獲取第10個數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù)的過程花費(fèi)的時間,也即花費(fèi)了10s,遠(yuǎn)遠(yuǎn)小于現(xiàn)有技術(shù)中的花費(fèi)時間95s,從而可以提高獲取數(shù)據(jù)的效率,進(jìn)而提高組裝文件的效率。
在上述例子中,在現(xiàn)有技術(shù)中,假設(shè)第二次從第1條數(shù)據(jù)重新開始獲取時順利地獲取到了這100條數(shù)據(jù),一共花費(fèi)了100s,加上之前花費(fèi)的95s,整個獲取流程一共花費(fèi)了195s。而在本發(fā)明實(shí)施例中,假設(shè)第二次重新根據(jù)該數(shù)據(jù)標(biāo)識子集合中的第1條數(shù)據(jù)標(biāo)識開始獲取數(shù)據(jù)時順利地獲取到了該數(shù)據(jù)標(biāo)識子集合中的10個數(shù)據(jù)標(biāo)識分別對應(yīng)的數(shù)據(jù),一共花費(fèi)了10s,加上之前第一次花費(fèi)的10s,一共花費(fèi)了20s,由于在第一次花費(fèi)的10s內(nèi)就分別獲取完了其它9個數(shù)據(jù)標(biāo)識子集合中每一個數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù),因此整個獲取流程一共花費(fèi)了20s,遠(yuǎn)遠(yuǎn)小于現(xiàn)有技術(shù)中的195s,從而可以提高獲取數(shù)據(jù)的效率,進(jìn)而提高組裝文件的效率。
圖2是根據(jù)一示例性實(shí)施例示出的一種組裝文件的裝置的框圖。參照圖2,該裝置包括:
拆分模塊11,用于當(dāng)需要將數(shù)據(jù)標(biāo)識集合中的每一個數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù)組裝成目標(biāo)文件時,將所述數(shù)據(jù)標(biāo)識集合拆分為多個數(shù)據(jù)標(biāo)識子集合;任意兩個數(shù)據(jù)標(biāo)識子集合中的數(shù)據(jù)標(biāo)識不重合;
獲取模塊12,用于同時分別獲取每一個數(shù)據(jù)標(biāo)識子集合中的數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù);
組裝模塊13,用于將每一個數(shù)據(jù)標(biāo)識子集合中的數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù)分別組裝成一個子文件;
合并模塊14,用于將組裝得到的所有子文件進(jìn)行合并得到目標(biāo)文件。
其中,所述獲取模塊12包括;
獲取單元,用于獲取目標(biāo)數(shù)量個工作線程;目標(biāo)數(shù)量與所述多個數(shù)據(jù)標(biāo)識子集合的數(shù) 量相同;
第一生成單元,用于為每一個數(shù)據(jù)標(biāo)識子集合分別生成數(shù)據(jù)獲取任務(wù);
分配單元,用于分別為每一個工作線程分配一個數(shù)據(jù)獲取任務(wù);為不同的工作線程分配的數(shù)據(jù)獲取任務(wù)不同;
執(zhí)行單元,用于同時利用每一個工作線程執(zhí)行為其分配的數(shù)據(jù)獲取任務(wù)。
其中,所述獲取單元包括:
選擇子單元,用于從與本地相連的預(yù)設(shè)服務(wù)器群組中選擇目標(biāo)數(shù)量個服務(wù)器;第一獲取子單元,用于從選擇出的每一個服務(wù)器中分別獲取一個空閑的工作線程,得到目標(biāo)數(shù)量個工作線程;
或者,
第二獲取子單元,用于從本地獲取目標(biāo)數(shù)量個空閑的工作線程。
其中,所述組裝模塊13具體用于對于每一個數(shù)據(jù)標(biāo)識子集合,生成一個空子文件,并將獲取的所述數(shù)據(jù)標(biāo)識子集合中的所有數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù)依次填入生成的空子文件中,得到一個子文件。
其中,所述合并模塊14包括:
檢測單元,用于檢測組裝得到的子文件的數(shù)量是否等于目標(biāo)數(shù)量;
第二生成單元,用于當(dāng)組裝得到的子文件的數(shù)量等于目標(biāo)數(shù)量時,生成一個空文件;
填入單元,用于將組裝得到的每一個子文件分別填入所述空文件中,得到目標(biāo)文件。
其中,所述合并模塊14還包括:
分隔單元,用于當(dāng)所述目標(biāo)文件中的數(shù)據(jù)為多個時,在所述目標(biāo)文件中,將任意相鄰的數(shù)據(jù)之間利用預(yù)設(shè)分隔符進(jìn)行分隔。
假設(shè),在現(xiàn)有技術(shù)中,獲取每一條數(shù)據(jù)所需花費(fèi)的時間都是相同的,在本發(fā)明實(shí)施例中,獲取每一條數(shù)據(jù)所需花費(fèi)的時間也都是相同的,且在現(xiàn)有技術(shù)中獲取一條數(shù)據(jù)所需花費(fèi)的時間與在本發(fā)明實(shí)施例中獲取一條數(shù)據(jù)所需花費(fèi)的時間相同。
在現(xiàn)有技術(shù)中,第一服務(wù)器需要依次獲取大量的數(shù)據(jù)中的每一條數(shù)據(jù),然后將讀取的所有數(shù)據(jù)組裝成文件?,F(xiàn)有技術(shù)獲取數(shù)據(jù)的整個過程相當(dāng)于是串行獲取,則獲取數(shù)據(jù)的整個過程需要花費(fèi)的時間為需要獲取的數(shù)據(jù)的數(shù)量與獲取一條數(shù)據(jù)需要花費(fèi)的時間之間的乘積。
而在本發(fā)明實(shí)施例中,當(dāng)需要將數(shù)據(jù)標(biāo)識集合中的每一個數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù)組裝成 目標(biāo)文件時,將數(shù)據(jù)標(biāo)識集合拆分為多個數(shù)據(jù)標(biāo)識子集合;任意兩個數(shù)據(jù)標(biāo)識子集合中的數(shù)據(jù)標(biāo)識不重合;同時分別獲取每一個數(shù)據(jù)標(biāo)識子集合中的數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù)。本發(fā)明實(shí)施例獲取數(shù)據(jù)的整個過程相當(dāng)于是并行獲取,則獲取數(shù)據(jù)的整個過程需要花費(fèi)的時間取決于多個數(shù)據(jù)標(biāo)識子集合中包括的數(shù)據(jù)標(biāo)識的數(shù)量最多的數(shù)據(jù)標(biāo)識子集合;獲取數(shù)據(jù)的整個過程需要花費(fèi)的時間為包括的數(shù)據(jù)標(biāo)識的數(shù)量最多的數(shù)據(jù)標(biāo)識子集合中的數(shù)據(jù)標(biāo)識的數(shù)量與獲取一條數(shù)據(jù)需要花費(fèi)的時間之間的乘積。由于包括的數(shù)據(jù)標(biāo)識的數(shù)量最多的數(shù)據(jù)標(biāo)識子集合中的數(shù)據(jù)標(biāo)識的數(shù)量必然小于所有需要獲取的數(shù)據(jù)的數(shù)量,因此,相對于現(xiàn)有技術(shù)中,本發(fā)明實(shí)施例可以減少獲取數(shù)據(jù)的整個過程需要花費(fèi)的時間,從而提高獲取數(shù)據(jù)的效率,進(jìn)而提高組裝文件的效率。
例如,假設(shè),在現(xiàn)有技術(shù)中,獲取每一條數(shù)據(jù)所需花費(fèi)的時間都是1s,總共需要獲取100條不同的數(shù)據(jù);在本發(fā)明實(shí)施例中,獲取每一條數(shù)據(jù)所需花費(fèi)的時間也是1s,總共需要獲取100條不同的數(shù)據(jù)。則在現(xiàn)有技術(shù)中需要花費(fèi)100s才能獲取完這100條數(shù)據(jù)。假設(shè)本發(fā)明實(shí)施例中包括10個數(shù)據(jù)標(biāo)識子集合,每個數(shù)據(jù)標(biāo)識子集合中包括10個數(shù)據(jù)標(biāo)識,則對于任意一個數(shù)據(jù)標(biāo)識子集合,獲取該數(shù)據(jù)標(biāo)識子集合中的所有數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù)所需要的時間為10s,由于是同時分別獲取這10個數(shù)據(jù)標(biāo)識子集合中的每一個數(shù)據(jù)標(biāo)識子集合中的數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù),因此整個流程只需花費(fèi)10s,遠(yuǎn)遠(yuǎn)小于現(xiàn)有技術(shù)中所需花費(fèi)的100s,從而可以提高數(shù)據(jù)獲取效率,進(jìn)而提高組裝文件的效率。
其次,在本發(fā)明實(shí)施例中,獲取不同的數(shù)據(jù)標(biāo)識子集合中的數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù)的流程相互之間的獨(dú)立的,不會相互影響。也即,當(dāng)依次獲取某一數(shù)據(jù)標(biāo)識子集合中的數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù)時,如果在獲取某一數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù)時獲取失敗,則只需重新執(zhí)行獲取某一數(shù)據(jù)標(biāo)識子集合中的數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù)的步驟,而不會對獲取其他數(shù)據(jù)標(biāo)識子集合中的數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù)造成影響。
例如,假設(shè)獲取一條數(shù)據(jù)的時間為1s,總共需要獲取100條不同的數(shù)據(jù),假設(shè)在現(xiàn)有技術(shù)和本發(fā)明實(shí)施例中分別出現(xiàn)了一次獲取一條數(shù)據(jù)時獲取失敗的請求情況。在現(xiàn)有技術(shù)中,假設(shè)在獲取第95條數(shù)據(jù)時獲取失敗,則需要從第1條數(shù)據(jù)重新開始獲取,這樣就白白花費(fèi)了從獲取第1條數(shù)據(jù)至第95條數(shù)據(jù)的過程花費(fèi)的時間,也即花費(fèi)了95s。而在本發(fā)明實(shí)施例中,第95條數(shù)據(jù)的數(shù)據(jù)標(biāo)識會位于多個數(shù)據(jù)標(biāo)識子集合中的一個數(shù)據(jù)標(biāo)識子集合,即使第95條數(shù)據(jù)的數(shù)據(jù)標(biāo)識是該數(shù)據(jù)標(biāo)識子集合中的最后一個數(shù)據(jù)標(biāo)識,也即第10個數(shù)據(jù)標(biāo)識,當(dāng)依次獲取該數(shù)據(jù)標(biāo)識子集合中的數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù)時,假設(shè)在根據(jù)第95條數(shù)據(jù)的數(shù)據(jù)標(biāo)識獲取第95條數(shù)據(jù)時獲取失敗,需要重新根據(jù)該數(shù)據(jù)標(biāo)識子集合中的第1條數(shù)據(jù)標(biāo)識開始獲取數(shù)據(jù),這樣會白白花費(fèi)了從獲取第1個數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù)至獲取第10個數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù)的過程花費(fèi)的時間,也即花費(fèi)了10s,遠(yuǎn)遠(yuǎn)小于現(xiàn)有技術(shù)中的花費(fèi)時間95s,從而可以提高獲取數(shù)據(jù)的效率,進(jìn)而提高組裝文件的效率。
在上述例子中,在現(xiàn)有技術(shù)中,假設(shè)第二次從第1條數(shù)據(jù)重新開始獲取時順利地獲取到了這100條數(shù)據(jù),一共花費(fèi)了100s,加上之前花費(fèi)的95s,整個獲取流程一共花費(fèi)了195s。而在本發(fā)明實(shí)施例中,假設(shè)第二次重新根據(jù)該數(shù)據(jù)標(biāo)識子集合中的第1條數(shù)據(jù)標(biāo)識開始獲取數(shù)據(jù)時順利地獲取到了該數(shù)據(jù)標(biāo)識子集合中的10個數(shù)據(jù)標(biāo)識分別對應(yīng)的數(shù)據(jù),一共花費(fèi)了10s,加上之前第一次花費(fèi)的10s,一共花費(fèi)了20s,由于在第一次花費(fèi)的10s內(nèi)就分別獲取完了其它9個數(shù)據(jù)標(biāo)識子集合中每一個數(shù)據(jù)標(biāo)識對應(yīng)的數(shù)據(jù),因此整個獲取流程一共花費(fèi)了20s,遠(yuǎn)遠(yuǎn)小于現(xiàn)有技術(shù)中的195s,從而可以提高獲取數(shù)據(jù)的效率,進(jìn)而提高組裝文件的效率。
關(guān)于上述實(shí)施例中的裝置,其中各個模塊執(zhí)行操作的具體方式已經(jīng)在有關(guān)該方法的實(shí)施例中進(jìn)行了詳細(xì)描述,此處將不做詳細(xì)闡述說明。
本領(lǐng)域技術(shù)人員在考慮說明書及實(shí)踐這里公開的發(fā)明后,將容易想到本發(fā)明的其它實(shí)施方案。本申請旨在涵蓋本發(fā)明的任何變型、用途或者適應(yīng)性變化,這些變型、用途或者適應(yīng)性變化遵循本發(fā)明的一般性原理并包括本發(fā)明未公開的本技術(shù)領(lǐng)域中的公知常識或慣用技術(shù)手段。說明書和實(shí)施例僅被視為示例性的,本發(fā)明的真正范圍和精神由所附的權(quán)利要求指出。
應(yīng)當(dāng)理解的是,本發(fā)明并不局限于上面已經(jīng)描述并在附圖中示出的精確結(jié)構(gòu),并且可以在不脫離其范圍進(jìn)行各種修改和改變。本發(fā)明的范圍僅由所附的權(quán)利要求來限制。