本發(fā)明涉及文件格式轉(zhuǎn)換的技術(shù)領(lǐng)域,具體涉及一種基于多線程的文件格式在線轉(zhuǎn)換方法及系統(tǒng)。
背景技術(shù):
網(wǎng)絡(luò)時(shí)代文件不斷向中心聚集,要獲知文件的信息,文件首先要以直觀呈現(xiàn)的方式給用戶展示,傳統(tǒng)的Office文件、PDF文件等往往需要特定的Office工具或PDF閱讀器、通過(guò)下載文件到本地才能打開閱讀,不利于直觀、快捷地展現(xiàn)文件效果。隨著云技術(shù)的發(fā)展,市面上出現(xiàn)了很多云盤、文庫(kù)類的產(chǎn)品,這些產(chǎn)品大都提供文件的在線預(yù)覽功能。在對(duì)文件進(jìn)行在線預(yù)覽時(shí),通常需要將待預(yù)覽的文件轉(zhuǎn)換成目標(biāo)文件格式,目前,對(duì)在線預(yù)覽文件的格式轉(zhuǎn)換的處理效率比較低,當(dāng)多個(gè)用戶同時(shí)在線預(yù)覽多個(gè)文件時(shí),就會(huì)遇到大量并發(fā)的情況,這樣,就會(huì)增加在線加載文件的時(shí)間,進(jìn)而增加預(yù)覽時(shí)間,更為嚴(yán)重的情況下,可能會(huì)造成網(wǎng)絡(luò)崩潰,所以如何進(jìn)行并發(fā)控制,是現(xiàn)有技術(shù)的熱門問(wèn)題。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)現(xiàn)有技術(shù)中的上述缺陷,本發(fā)明提供了一種基于多線程的文件格式在線轉(zhuǎn)換方法及系統(tǒng),能夠控制在線預(yù)覽文件時(shí)的并發(fā)狀況,同時(shí),可以提高處理效率,節(jié)省在線預(yù)覽的時(shí)間。
第一方面,本發(fā)明提供的一種基于多線程的文件格式在線轉(zhuǎn)換方法,包括:
接收用于請(qǐng)求對(duì)指定文件進(jìn)行格式轉(zhuǎn)換的請(qǐng)求;
根據(jù)所述請(qǐng)求從預(yù)先建立的線程池中調(diào)取一個(gè)線程;
利用所述線程調(diào)用轉(zhuǎn)換組件;
利用所述線程和所述轉(zhuǎn)換組件對(duì)所述指定文件進(jìn)行格式轉(zhuǎn)換,獲得轉(zhuǎn)換后的文件;
將所述轉(zhuǎn)換后的文件作為所述請(qǐng)求的響應(yīng),使用戶可以在線預(yù)覽所述轉(zhuǎn)換后的文件。
可選的,在所述接收用于請(qǐng)求對(duì)指定文件進(jìn)行格式轉(zhuǎn)換的請(qǐng)求的步驟之前,還包括:
創(chuàng)建具有初始容量的線程池,所述線程池中包括多個(gè)可獨(dú)立進(jìn)行文件格式轉(zhuǎn)換的線程。
可選的,在所述根據(jù)所述請(qǐng)求從預(yù)先建立的線程池中調(diào)取一個(gè)線程的步驟之前,還包括:
在線程池中運(yùn)行的線程中查找是否已有針對(duì)所述指定文件進(jìn)行格式轉(zhuǎn)換的線程;
若有,則等待所述線程運(yùn)行完成,將所述線程轉(zhuǎn)換后的文件作為所述請(qǐng)求的響應(yīng)。
可選的,在所述利用所述線程和所述轉(zhuǎn)換組件對(duì)所述指定文件進(jìn)行格式轉(zhuǎn)換,獲得轉(zhuǎn)換后的文件的步驟之后,還包括:
判斷是否還有針對(duì)所述指定文件的其它請(qǐng)求;
若沒有,則將所述轉(zhuǎn)換后的文件存儲(chǔ)到緩存中;
若有,則根據(jù)所述其它請(qǐng)求處理所述指定文件;所述將所述轉(zhuǎn)換后的文件作為所述請(qǐng)求的響應(yīng),包括:將根據(jù)所述其它請(qǐng)求處理過(guò)的文件作為所述請(qǐng)求的響應(yīng)。
可選的,所述緩存包括:服務(wù)器緩存和/或前端播放器緩存。
可選的,在所述根據(jù)所述請(qǐng)求從預(yù)先建立的線程池中調(diào)取一個(gè)線程的步驟之前,還包括:
在緩存中查找是否已有對(duì)所述指定文件進(jìn)行轉(zhuǎn)換后的文件;
若有,則從所述緩存中調(diào)用所述轉(zhuǎn)換后的文件作為所述請(qǐng)求的響應(yīng)。
可選的,所述接收用于請(qǐng)求對(duì)指定文件進(jìn)行格式轉(zhuǎn)換的請(qǐng)求,包括:
接收多個(gè)客戶端同時(shí)發(fā)起的用于請(qǐng)求對(duì)指定文件進(jìn)行格式轉(zhuǎn)換的多個(gè)相同的請(qǐng)求。
第二方面,本發(fā)明提供的一種基于多線程的文件格式在線轉(zhuǎn)換系統(tǒng),包括:
請(qǐng)求接收模塊,用于接收用于請(qǐng)求對(duì)指定文件進(jìn)行格式轉(zhuǎn)換的請(qǐng)求;
線程調(diào)取模塊,用于根據(jù)所述請(qǐng)求從預(yù)先建立的線程池中調(diào)取一個(gè)線程;
轉(zhuǎn)換組件調(diào)用模塊,用于利用所述線程調(diào)用轉(zhuǎn)換組件;
格式轉(zhuǎn)換模塊,用于利用所述線程和所述轉(zhuǎn)換組件對(duì)所述指定文件進(jìn)行格式轉(zhuǎn)換,獲得轉(zhuǎn)換后的文件;
響應(yīng)模塊,用于將所述轉(zhuǎn)換后的文件作為所述請(qǐng)求的響應(yīng),使用戶可以在線預(yù)覽所述轉(zhuǎn)換后的文件。
可選的,所述基于多線程的文件格式在線轉(zhuǎn)換系統(tǒng),還包括:
線程池創(chuàng)建模塊,用于創(chuàng)建具有初始容量的線程池,所述線程池中包括多個(gè)可獨(dú)立進(jìn)行文件格式轉(zhuǎn)換的線程。
可選的,所述基于多線程的文件格式在線轉(zhuǎn)換系統(tǒng),還包括:
線程查找模塊,用于在線程池中運(yùn)行的線程中查找是否已有針對(duì)所述指定文件進(jìn)行格式轉(zhuǎn)換的線程;
若有,則等待所述線程運(yùn)行完成,將所述線程轉(zhuǎn)換后的文件作為所述請(qǐng)求的響應(yīng)。
可選的,所述基于多線程的文件格式在線轉(zhuǎn)換系統(tǒng),還包括:
其它請(qǐng)求判斷模塊,用于判斷是否還有針對(duì)所述指定文件的其它請(qǐng)求;
若沒有,則將所述轉(zhuǎn)換后的文件存儲(chǔ)到緩存中;
若有,則根據(jù)所述其它請(qǐng)求處理所述指定文件;所述將所述轉(zhuǎn)換后的文件作為所述請(qǐng)求的響應(yīng),包括:將根據(jù)所述其它請(qǐng)求處理過(guò)的文件作為所述請(qǐng)求的響應(yīng)。
可選的,所述緩存包括:服務(wù)器緩存和/或前端播放器緩存。
可選的,所述基于多線程的文件格式在線轉(zhuǎn)換系統(tǒng),還包括:
緩存查找模塊,用于在緩存中查找是否已有對(duì)所述指定文件進(jìn)行轉(zhuǎn)換后的文件;
若有,則從所述緩存中調(diào)用所述轉(zhuǎn)換后的文件作為所述請(qǐng)求的響應(yīng)。
可選的,所述請(qǐng)求接收模塊,包括:
多個(gè)相同請(qǐng)求接收單元,用于接收多個(gè)客戶端同時(shí)發(fā)起的用于請(qǐng)求對(duì)指定文件進(jìn)行格式轉(zhuǎn)換的多個(gè)相同的請(qǐng)求。
由以上技術(shù)方案可知,本發(fā)明提供了一種基于多線程的文件格式在線轉(zhuǎn)換方法,包括:接收用于請(qǐng)求對(duì)指定文件進(jìn)行格式轉(zhuǎn)換的請(qǐng)求;根據(jù)所述請(qǐng)求從預(yù)先建立的線程池中調(diào)取一個(gè)線程;利用所述線程調(diào)用文件轉(zhuǎn)換組件;利用所述線程和所述轉(zhuǎn)換組件對(duì)所述指定文件進(jìn)行格式轉(zhuǎn)換,獲得轉(zhuǎn)換后的文件;將所述轉(zhuǎn)換后的文件作為所述請(qǐng)求的響應(yīng),使用戶可以在線預(yù)覽所述轉(zhuǎn)換后的文件。
這種多線程的文件格式在線轉(zhuǎn)換方法,通過(guò)引入線程池的技術(shù),首先,從所述線程池中調(diào)取一個(gè)線程,然后利用所述線程調(diào)用轉(zhuǎn)換組件,最后利用所述線程和所述轉(zhuǎn)換組件對(duì)所述指定文件進(jìn)行格式轉(zhuǎn)換,這樣就可以同時(shí)采用獨(dú)立的多個(gè)線程對(duì)多個(gè)文件分別進(jìn)行格式轉(zhuǎn)換,可以采用多個(gè)線程處理多個(gè)文件,可以實(shí)現(xiàn)同時(shí)對(duì)多個(gè)文件進(jìn)行格式轉(zhuǎn)換的過(guò)程,不需要排隊(duì)等線程,可以減小在線加載文件的時(shí)間,進(jìn)而節(jié)省在線預(yù)覽的時(shí)間,提高處理效率;同時(shí),利用這種方法還可以同時(shí)響應(yīng)多個(gè)文件格式轉(zhuǎn)換的請(qǐng)求,能夠解決在線預(yù)覽文件時(shí)的并發(fā)狀況,可以使用戶同時(shí)在線預(yù)覽多個(gè)文件,能夠提高用戶體驗(yàn)。
本發(fā)明提供的一種基于多線程的文件格式在線轉(zhuǎn)換系統(tǒng),與上述基于多線程的文件格式在線轉(zhuǎn)換方法出于相同的發(fā)明構(gòu)思,具有相同的有益效果。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明具體實(shí)施方式或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)具體實(shí)施方式或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹。在所有附圖中,類似的元件或部分一般由類似的附圖標(biāo)記標(biāo)識(shí)。附圖中,各元件或部分并不一定按照實(shí)際的比例繪制。
圖1示出了本發(fā)明第一實(shí)施例提供的一種基于多線程的文件格式在線轉(zhuǎn)換方法的流程圖;
圖2示出了本發(fā)明第二實(shí)施例提供的一種基于多線程的文件格式在線轉(zhuǎn)換系統(tǒng)的示意圖。
具體實(shí)施方式
下面將結(jié)合附圖對(duì)本發(fā)明技術(shù)方案的實(shí)施例進(jìn)行詳細(xì)的描述。以下實(shí)施例僅用于更加清楚地說(shuō)明本發(fā)明的技術(shù)方案,因此只是作為示例,而不能以此來(lái)限制本發(fā)明的保護(hù)范圍。
需要注意的是,除非另有說(shuō)明,本發(fā)明使用的技術(shù)術(shù)語(yǔ)或者科學(xué)術(shù)語(yǔ)應(yīng)當(dāng)為本發(fā)明所屬領(lǐng)域技術(shù)人員所理解的通常意義。
為了便于理解,在此對(duì)本發(fā)明的整體發(fā)明構(gòu)思進(jìn)行說(shuō)明:
本發(fā)明提供的基于多線程的文件格式在線轉(zhuǎn)換方法及系統(tǒng),可安裝在服務(wù)器、智能終端等載體上。本發(fā)明提供的一種基于多線程的文件格式在線轉(zhuǎn)換方法及系統(tǒng),整體上同屬于一個(gè)相同的發(fā)明構(gòu)思,第一步,接收用于請(qǐng)求對(duì)指定文件進(jìn)行格式轉(zhuǎn)換的請(qǐng)求;第二步,根據(jù)所述請(qǐng)求從預(yù)先建立的線程池中調(diào)取一個(gè)線程;第三步,利用所述線程調(diào)用文件轉(zhuǎn)換組件;第四步,利用所述線程和所述轉(zhuǎn)換組件對(duì)所述指定文件進(jìn)行格式轉(zhuǎn)換,獲得轉(zhuǎn)換后的文件;第五步,將所述轉(zhuǎn)換后的文件作為所述請(qǐng)求的響應(yīng),使用戶可以在線預(yù)覽所述轉(zhuǎn)換后的文件。本發(fā)明提供的基于多線程的文件格式在線轉(zhuǎn)換方法及系統(tǒng),通過(guò)引入線程池技術(shù),利用所述線程池中線程調(diào)用文件轉(zhuǎn)換組件,利用所述線程和所述轉(zhuǎn)換組件對(duì)指定文件進(jìn)行格式轉(zhuǎn)換,最終,使用戶可以在線預(yù)覽經(jīng)過(guò)格式轉(zhuǎn)換后的文件。在線程池中有多個(gè)獨(dú)立的線程,這樣就可以同時(shí)采用獨(dú)立的線程對(duì)多個(gè)文件分別進(jìn)行格式轉(zhuǎn)換,不需要排隊(duì)等線程,可以減小在線加載文件的時(shí)間,進(jìn)而提高處理效率,減小在線預(yù)覽時(shí)間,同時(shí),通過(guò)利用這種方法,能夠控制在線預(yù)覽文件時(shí)的并發(fā)狀況,進(jìn)而保護(hù)網(wǎng)絡(luò)環(huán)境。
本發(fā)明提供了一種基于多線程的文件格式在線轉(zhuǎn)換方法及系統(tǒng)。下面結(jié)合附圖對(duì)本發(fā)明的實(shí)施例進(jìn)行說(shuō)明。
圖1示出了本發(fā)明第一實(shí)施例所提供的一種基于多線程的文件格式在線轉(zhuǎn)換方法的流程圖。如圖1所示,本發(fā)明第一實(shí)施例提供的一種基于多線程的文件格式在線轉(zhuǎn)換方法包括以下步驟:
步驟S101:接收用于請(qǐng)求對(duì)指定文件進(jìn)行格式轉(zhuǎn)換的請(qǐng)求。
在本步驟中,所述請(qǐng)求是用戶在智能終端在線預(yù)覽文件時(shí)智能終端發(fā)出的。當(dāng)用戶在智能終端執(zhí)行在線預(yù)覽指定文件的操作后,所述智能終端就會(huì)發(fā)出一個(gè)對(duì)所述指定文件進(jìn)行格式轉(zhuǎn)換的請(qǐng)求,根據(jù)所述請(qǐng)求可以將所述指定文件轉(zhuǎn)換成目標(biāo)格式,所述目標(biāo)格式可以是默認(rèn)的,也可以是用戶自己選擇,所述目標(biāo)格式是指用戶在線預(yù)覽所述指定文件時(shí),在線看到的文件的格式。所述目標(biāo)格式包括:HTML、SWF等格式。
其中,所述指定文件可以是用戶上傳到網(wǎng)上的文件,也可以是網(wǎng)絡(luò)上存在的文件。例如,所述指定文件可以是云盤中的文件、文庫(kù)中的文件、郵箱中的郵件、閱讀器中的文件等文件中的任意一種。所述指定文件的內(nèi)容可以是文本、圖片、視頻等中的一種或多種的組合。所述指定文件的格式可以是doc、xls、ppt、pdf、gif、rmvb等格式中的任意一種。因此,本發(fā)明可以應(yīng)用于不同的文件格式,應(yīng)用范圍廣。本發(fā)明支持多種不同的文件預(yù)覽的格式,能夠?qū)⑽募D(zhuǎn)換成高質(zhì)量的網(wǎng)頁(yè)文件,可以提高用戶體驗(yàn)。
在利用本發(fā)明進(jìn)行轉(zhuǎn)換時(shí),在本步驟之前,還包括:創(chuàng)建具有初始容量的線程池,所述線程池中包括多個(gè)可獨(dú)立進(jìn)行文件格式轉(zhuǎn)換的線程。在使用本發(fā)明的服務(wù)器或智能終端上需要?jiǎng)?chuàng)建線程池,當(dāng)所述服務(wù)器或智能終端啟動(dòng)時(shí),創(chuàng)建線程池,所述線程池配置有初始容量,可以保證多個(gè)文件的格式轉(zhuǎn)換。所述線程池的數(shù)量不限,可以是100、1000、2000等,可以根據(jù)所述服務(wù)器或智能終端的需要進(jìn)行創(chuàng)建。線程越多可以同時(shí)處理的文件就越多,但是,對(duì)服務(wù)器或智能終端的要求就越高。
所述接收用于請(qǐng)求對(duì)指定文件進(jìn)行格式轉(zhuǎn)換的請(qǐng)求,包括:接收一個(gè)客戶端發(fā)起的用于請(qǐng)求對(duì)指定文件進(jìn)行格式轉(zhuǎn)換的一個(gè)請(qǐng)求、接收多個(gè)客戶端發(fā)起的用戶請(qǐng)求對(duì)指定文件進(jìn)行格式轉(zhuǎn)換的多個(gè)相同的請(qǐng)求、接收多個(gè)客戶端同時(shí)發(fā)起的用于請(qǐng)求對(duì)指定文件進(jìn)行格式轉(zhuǎn)換的多個(gè)相同的請(qǐng)求、接收一個(gè)客戶端發(fā)起的用于請(qǐng)求對(duì)多個(gè)指定文件進(jìn)行格式轉(zhuǎn)換的多個(gè)請(qǐng)求、接收多個(gè)客戶端發(fā)起的用于請(qǐng)求對(duì)多個(gè)指定文件進(jìn)行格式轉(zhuǎn)換的多個(gè)請(qǐng)求。這都在本發(fā)明的保護(hù)范圍內(nèi)。
步驟S102:根據(jù)所述請(qǐng)求從預(yù)先建立的線程池中調(diào)取一個(gè)線程。
在本步驟之前,當(dāng)接收到用于請(qǐng)求對(duì)指定文件進(jìn)行格式轉(zhuǎn)換的請(qǐng)求時(shí),需要識(shí)別所述指定文件的信息。所述指定文件的信息,包括所述指定文件的原始格式、名稱等信息,所述原始格式是指還沒進(jìn)行格式轉(zhuǎn)換的所述指定文件的格式??梢酝ㄟ^(guò)所述指定文件的頭信息和/或后綴名來(lái)識(shí)別所述指定文件。在識(shí)別所述指定文件的信息后,根據(jù)所述指定文件的信息,在線程池中運(yùn)行的線程中查找是否已有針對(duì)所述指定文件進(jìn)行格式轉(zhuǎn)換的線程,若有,則等待所述線程運(yùn)行完成,將所述線程轉(zhuǎn)換后的文件作為所述請(qǐng)求的響應(yīng);若沒有,則需要從預(yù)先建立的線程池中調(diào)取一個(gè)線程來(lái)對(duì)所述指定文件進(jìn)行格式轉(zhuǎn)換。通過(guò)識(shí)別,可以判斷出兩個(gè)指定文件是否是同一個(gè)指定文件,是之后調(diào)用線程的基礎(chǔ)。
在本步驟中,所述請(qǐng)求是指對(duì)用于請(qǐng)求指定文件進(jìn)行格式轉(zhuǎn)換的請(qǐng)求,可以是一個(gè)客戶端發(fā)起的,也可以是多個(gè)客戶端發(fā)起的??梢允且粋€(gè)客戶端一次發(fā)起的對(duì)所述指定文件進(jìn)行格式轉(zhuǎn)換的請(qǐng)求,可以是一個(gè)客戶端多次發(fā)起的對(duì)所述指定文件進(jìn)行格式轉(zhuǎn)換的多個(gè)相同的請(qǐng)求,可以是多個(gè)客戶端多次不同時(shí)間發(fā)起的對(duì)所述指定文件進(jìn)行格式轉(zhuǎn)換的多個(gè)相同的請(qǐng)求,可以是多個(gè)客戶端同時(shí)發(fā)起的對(duì)所述指定文件進(jìn)行格式轉(zhuǎn)換的多個(gè)相同的請(qǐng)求,可以看出上述幾種情況都是對(duì)同一個(gè)指定文件進(jìn)行格式轉(zhuǎn)換。通過(guò)對(duì)所述指定文件的識(shí)別,可以判斷出多個(gè)請(qǐng)求中的指定文件是否是同一個(gè)指定文件。
當(dāng)接收到對(duì)同一個(gè)指定文件進(jìn)行格式轉(zhuǎn)換的請(qǐng)求時(shí),則從預(yù)先建立的線程池中調(diào)取一個(gè)線程進(jìn)行格式轉(zhuǎn)換。這樣,就可以避免重復(fù)對(duì)同一個(gè)文件進(jìn)行格式轉(zhuǎn)換,可以減少資源的浪費(fèi)。當(dāng)然,在接收到對(duì)指定文件進(jìn)行格式轉(zhuǎn)換的請(qǐng)求時(shí),也可以不對(duì)所述指定文件進(jìn)行識(shí)別,可以從所述線程池中調(diào)用多個(gè)線程來(lái)處理對(duì)同一個(gè)指定文件進(jìn)行格式轉(zhuǎn)換的多個(gè)相同的請(qǐng)求,這也在本發(fā)明的保護(hù)范圍內(nèi)。
當(dāng)接收到多個(gè)客戶端同時(shí)發(fā)起的用于請(qǐng)求對(duì)指定文件進(jìn)行格式轉(zhuǎn)換的多個(gè)相同的請(qǐng)求時(shí),只需要隨機(jī)根據(jù)其中一個(gè)請(qǐng)求從預(yù)先建立的線程池中調(diào)取一個(gè)線程,其它請(qǐng)求等待所述線程運(yùn)行完成,將所述線程轉(zhuǎn)換后的文件作為所述請(qǐng)求的響應(yīng)。
當(dāng)接收到多個(gè)客戶端不同時(shí)間發(fā)起的用于請(qǐng)求對(duì)指定文件進(jìn)行格式轉(zhuǎn)換的多個(gè)相同的請(qǐng)求時(shí),則從預(yù)先建立的線程池中調(diào)取一個(gè)線程來(lái)處理最早發(fā)起的所述請(qǐng)求,其它請(qǐng)求等待所述線程運(yùn)行完成,將所述線程轉(zhuǎn)換后的文件作為所述請(qǐng)求的響應(yīng)。
當(dāng)接受到一個(gè)客戶端或多個(gè)客戶端發(fā)起的用于請(qǐng)求對(duì)多個(gè)指定文件進(jìn)行格式轉(zhuǎn)換的多個(gè)不同的請(qǐng)求時(shí),需要根據(jù)所述多個(gè)指定文件的個(gè)數(shù)來(lái)調(diào)取相應(yīng)的多個(gè)線程。例如,當(dāng)一個(gè)或多個(gè)用戶對(duì)五個(gè)不同的文件發(fā)起格式轉(zhuǎn)換的請(qǐng)求時(shí),需要從線程池中調(diào)取五個(gè)線程,來(lái)對(duì)所述五個(gè)不同的文件分別進(jìn)行格式轉(zhuǎn)換。所述多個(gè)請(qǐng)求可以是同時(shí)發(fā)出的,也可以是不同時(shí)間發(fā)出的,都在本發(fā)明的保護(hù)范圍內(nèi)。所述多個(gè)請(qǐng)求是同時(shí)發(fā)出的,意味著,同時(shí)接收到所述多個(gè)請(qǐng)求。當(dāng)同時(shí)接收到用于請(qǐng)求對(duì)多個(gè)指定文件進(jìn)行格式轉(zhuǎn)換的多個(gè)不同的請(qǐng)求時(shí),則隨機(jī)調(diào)取多個(gè)線程,采用獨(dú)立的線程對(duì)各個(gè)文件分別進(jìn)行格式轉(zhuǎn)換。當(dāng)不同時(shí)間接收到用于請(qǐng)求對(duì)多個(gè)指定文件進(jìn)行格式轉(zhuǎn)換的多個(gè)不同的請(qǐng)求時(shí),則根據(jù)所述請(qǐng)求的順序隨機(jī)從線程池中調(diào)取線程。
通過(guò)采用線程池技術(shù),可以實(shí)現(xiàn)同時(shí)對(duì)多個(gè)文件進(jìn)行格式轉(zhuǎn)換的過(guò)程,不需要排隊(duì)等線程,可以減小在線加載文件的時(shí)間,節(jié)省在線預(yù)覽的時(shí)間,進(jìn)而提高處理效率;同時(shí),能夠解決在線預(yù)覽文件時(shí)的并發(fā)狀況,可以使用戶同時(shí)在線預(yù)覽多個(gè)文件。
步驟S103:利用所述線程調(diào)用轉(zhuǎn)換組件。
在本步驟之前,需要對(duì)指定文件的原始格式進(jìn)行識(shí)別,跟之前對(duì)指定文件的信息進(jìn)行識(shí)別的方法相同,通過(guò)所述指定文件的頭信息和/或后綴名來(lái)識(shí)別所述指定文件的原始格式。然后,根據(jù)所述指定文件的原始格式和目標(biāo)格式來(lái)選擇轉(zhuǎn)換組件。所述目標(biāo)格式可以是用戶自己選擇的,也可以是服務(wù)器或智能終端默認(rèn)的。所述轉(zhuǎn)換組件是可以將所述原始格式的文件轉(zhuǎn)換成目標(biāo)格式的文件的組件。例如,PDFCreator組件、OpenOffice組件等。
步驟S104:利用所述線程和所述轉(zhuǎn)換組件對(duì)所述指定文件進(jìn)行格式轉(zhuǎn)換,獲得轉(zhuǎn)換后的文件。
在本步驟中,所述線程利用所述轉(zhuǎn)換組件對(duì)所述指定文件進(jìn)行格式轉(zhuǎn)換,并獲得轉(zhuǎn)換后的文件。在本步驟之后,還可以包括:判斷是否還有針對(duì)所述指定文件的其它請(qǐng)求;若沒有,則將所述轉(zhuǎn)換后的文件存儲(chǔ)到緩存中;若有,則根據(jù)所述其它請(qǐng)求處理所述指定文件,將根據(jù)所述其它請(qǐng)求處理過(guò)的文件作為所述請(qǐng)求的響應(yīng)。所述其它請(qǐng)求包括:所述轉(zhuǎn)換后的文件預(yù)覽效果不好,需要重新轉(zhuǎn)換;用戶還需要將文件轉(zhuǎn)換成其它格式;用戶只需要預(yù)覽文件中的某一部分等。當(dāng)沒有對(duì)指定文件的其它請(qǐng)求時(shí),將所述轉(zhuǎn)換后的文件存儲(chǔ)到緩存中,并釋放進(jìn)程。
其中,所述緩存包括:服務(wù)器緩存和/或前端播放器緩存,用戶可以根據(jù)需要選擇下載轉(zhuǎn)換后的文件,同時(shí),用戶也可以下載轉(zhuǎn)換前的指定文件,都在本發(fā)明的保護(hù)范圍內(nèi)。這樣,可以盡量滿足用戶的需求,能夠提高用戶體驗(yàn)。
在轉(zhuǎn)換后,轉(zhuǎn)換后的文件還可以存儲(chǔ)到使用本發(fā)明的服務(wù)器或智能終端的緩存中。所述服務(wù)器或智能終端還可以存儲(chǔ)轉(zhuǎn)換前的指定文件。在步驟S102之前,還可以包括:在緩存中查找是否已有對(duì)所述指定文件進(jìn)行轉(zhuǎn)換后的文件;若有,則從所述緩存中調(diào)用所述轉(zhuǎn)換后的文件作為所述請(qǐng)求的響應(yīng)。在接收到用于請(qǐng)求對(duì)指定文件進(jìn)行格式轉(zhuǎn)換的請(qǐng)求時(shí),通過(guò)識(shí)別所述指定文件,然后,在所述緩存中查找是否已有對(duì)所述指定文件進(jìn)行轉(zhuǎn)換后的文件,若沒有,則根據(jù)所述請(qǐng)求從預(yù)先建立的線程池中調(diào)取一個(gè)線程,然后執(zhí)行后面的步驟;若有,則直接從所述緩存中調(diào)用所述轉(zhuǎn)換后的文件作為所述請(qǐng)求的響應(yīng)。在經(jīng)過(guò)格式轉(zhuǎn)換后,文件頭的部分信息是不變的,可以通過(guò)文件頭信息來(lái)查找是否已有對(duì)所述指定文件進(jìn)行轉(zhuǎn)換后的文件。通過(guò)這種方法,可以避免對(duì)同一個(gè)文件的多次重復(fù)轉(zhuǎn)換,避免資源的浪費(fèi),能夠節(jié)省資源和時(shí)間。
所述在緩存中查找是否已有對(duì)所述指定文件進(jìn)行轉(zhuǎn)換后的文件和所述在線程池中運(yùn)行的線程中查找是否已有針對(duì)所述指定文件進(jìn)行格式轉(zhuǎn)換的線程,可以同時(shí)進(jìn)行,也可以獨(dú)立進(jìn)行,互不影響,也可以相互結(jié)合來(lái)判斷是否執(zhí)行后面的步驟,這都在本發(fā)明的保護(hù)范圍內(nèi)。例如,在線程中沒有查找到對(duì)指定文件進(jìn)行格式轉(zhuǎn)換的線程,在緩存中也沒有查找到相應(yīng)的轉(zhuǎn)換后的文件,這時(shí),就可以從預(yù)先建立的線程池中調(diào)取一個(gè)線程,然后執(zhí)行后面的步驟。
步驟S105:將所述轉(zhuǎn)換后的文件作為所述請(qǐng)求的響應(yīng),使用戶可以在線預(yù)覽所述轉(zhuǎn)換后的文件。
在本步驟中,將所述轉(zhuǎn)換后的文件發(fā)送給相應(yīng)的用戶,使用戶可以直接在線預(yù)覽所述轉(zhuǎn)換后的文件。
通過(guò)這種方法可以直觀、快捷的展現(xiàn)文件的內(nèi)容,使用戶直接就可以在線預(yù)覽文件,避免用戶下載文件,然后再利用軟件打開文件,可以節(jié)省時(shí)間和資源;同時(shí),方便用戶選擇性地下載文件,避免下載無(wú)用的文件,有利于提升工作效率,可以提高用戶黏性。
在上述的第一實(shí)施例中,提供了一種基于多線程的文件格式在線轉(zhuǎn)換方法,與之相對(duì)應(yīng)的,本發(fā)明還提供一種基于多線程的文件格式在線轉(zhuǎn)換系統(tǒng)。請(qǐng)參考圖2,其為本發(fā)明第二實(shí)施例提供的一種基于多線程的文件格式在線轉(zhuǎn)換系統(tǒng)的示意圖。由于系統(tǒng)實(shí)施例基本相似于方法實(shí)施例,所以描述得比較簡(jiǎn)單,相關(guān)之處參見方法實(shí)施例的部分說(shuō)明即可。下述描述的系統(tǒng)實(shí)施例僅僅是示意性的。
本發(fā)明第二實(shí)施例提供的一種基于多線程的文件格式在線轉(zhuǎn)換系統(tǒng),包括:
請(qǐng)求接收模塊101,用于接收用于請(qǐng)求對(duì)指定文件進(jìn)行格式轉(zhuǎn)換的請(qǐng)求;
線程調(diào)取模塊102,用于根據(jù)所述請(qǐng)求從預(yù)先建立的線程池中調(diào)取一個(gè)線程;
轉(zhuǎn)換組件調(diào)用模塊103,用于利用所述線程調(diào)用轉(zhuǎn)換組件;
格式轉(zhuǎn)換模塊104,用于利用所述線程和所述轉(zhuǎn)換組件對(duì)所述指定文件進(jìn)行格式轉(zhuǎn)換,獲得轉(zhuǎn)換后的文件;
響應(yīng)模塊105,用于將所述轉(zhuǎn)換后的文件作為所述請(qǐng)求的響應(yīng),使用戶可以在線預(yù)覽所述轉(zhuǎn)換后的文件。
在本發(fā)明提供的一個(gè)實(shí)施例中,所述基于多線程的文件格式在線轉(zhuǎn)換系統(tǒng),還包括:
線程池創(chuàng)建模塊,用于創(chuàng)建具有初始容量的線程池,所述線程池中包括多個(gè)可獨(dú)立進(jìn)行文件格式轉(zhuǎn)換的線程。
在本發(fā)明提供的一個(gè)實(shí)施例中,所述基于多線程的文件格式在線轉(zhuǎn)換系統(tǒng),還包括:
線程查找模塊,用于在線程池中運(yùn)行的線程中查找是否已有針對(duì)所述指定文件進(jìn)行格式轉(zhuǎn)換的線程;
若有,則等待所述線程運(yùn)行完成,將所述線程轉(zhuǎn)換后的文件作為所述請(qǐng)求的響應(yīng)。
在本發(fā)明提供的一個(gè)實(shí)施例中,所述基于多線程的文件格式在線轉(zhuǎn)換系統(tǒng),還包括:
其它請(qǐng)求判斷模塊,用于判斷是否還有針對(duì)所述指定文件的其它請(qǐng)求;
若沒有,則將所述轉(zhuǎn)換后的文件存儲(chǔ)到緩存中;
若有,則根據(jù)所述其它請(qǐng)求處理所述指定文件;所述將所述轉(zhuǎn)換后的文件作為所述請(qǐng)求的響應(yīng),包括:將根據(jù)所述其它請(qǐng)求處理過(guò)的文件作為所述請(qǐng)求的響應(yīng)。
在本發(fā)明提供的一個(gè)實(shí)施例中,所述緩存包括:服務(wù)器緩存和/或前端播放器緩存。
在本發(fā)明提供的一個(gè)實(shí)施例中,所述基于多線程的文件格式在線轉(zhuǎn)換系統(tǒng),還包括:
緩存查找模塊,用于在緩存中查找是否已有對(duì)所述指定文件進(jìn)行轉(zhuǎn)換后的文件;
若有,則從所述緩存中調(diào)用所述轉(zhuǎn)換后的文件作為所述請(qǐng)求的響應(yīng)。
在本發(fā)明提供的一個(gè)實(shí)施例中,所述請(qǐng)求接收模塊101,包括:
多個(gè)相同請(qǐng)求接收單元,用于接收多個(gè)客戶端同時(shí)發(fā)起的用于請(qǐng)求對(duì)指定文件進(jìn)行格式轉(zhuǎn)換的多個(gè)相同的請(qǐng)求。
本發(fā)明提供的一種基于多線程的文件格式在線轉(zhuǎn)換系統(tǒng)與上述基于多線程的文件格式在線轉(zhuǎn)換方法出于相同的發(fā)明構(gòu)思,具有相同的有益效果,此處不再贅述。
在本說(shuō)明書的描述中,參考術(shù)語(yǔ)“一個(gè)實(shí)施例”、“一些實(shí)施例”、“例如”、或“一些示例”等的描述意指結(jié)合該實(shí)施例或示例描述的具體特征、結(jié)構(gòu)、材料或者特點(diǎn)包含于本發(fā)明的至少一個(gè)實(shí)施例或示例中。在本說(shuō)明書中,對(duì)上述術(shù)語(yǔ)的示意性表述不是必須針對(duì)的是相同的實(shí)施例或示例。而且,描述的具體特征、結(jié)構(gòu)、材料或者特點(diǎn)可以在任一個(gè)或多個(gè)實(shí)施例或示例中以合適的方式結(jié)合。此外,在不相互矛盾的情況下,本領(lǐng)域的技術(shù)人員可以將本說(shuō)明書中描述的不同實(shí)施例或示例以及不同實(shí)施例或示例的特征進(jìn)行結(jié)合和組合。需要說(shuō)明的是,本發(fā)明附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個(gè)實(shí)施例的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)的體系架構(gòu)、功能和操作。在這點(diǎn)上,流程圖或框圖中的每個(gè)方框可以代表一個(gè)模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個(gè)或多個(gè)用于實(shí)現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實(shí)現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個(gè)連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時(shí)也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個(gè)方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或動(dòng)作的專用的基于硬件的系統(tǒng)來(lái)實(shí)現(xiàn),或者可以用專用硬件與計(jì)算機(jī)指令的組合來(lái)實(shí)現(xiàn)。
所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡(jiǎn)潔,上述描述的系統(tǒng)、裝置和單元的具體工作過(guò)程,可以參考前述方法實(shí)施例中的對(duì)應(yīng)過(guò)程,在此不再贅述。
在本發(fā)明所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的系統(tǒng)、裝置和方法,可以通過(guò)其它的方式實(shí)現(xiàn)。以上所描述的裝置實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,又例如,多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過(guò)一些通信接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。
所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。
所述功能如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)機(jī)器(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)機(jī)器等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤、移動(dòng)硬盤、只讀存儲(chǔ)器(ROM,Read-Only Memory)、隨機(jī)存取存儲(chǔ)器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
最后應(yīng)說(shuō)明的是:以上各實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述各實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍,其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求和說(shuō)明書的范圍當(dāng)中。