本申請涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種計(jì)算機(jī)文件傳輸方法及裝置。
背景技術(shù):
在互聯(lián)網(wǎng)領(lǐng)域,數(shù)據(jù)傳輸是互聯(lián)網(wǎng)中不同客戶端之間數(shù)據(jù)交流的基礎(chǔ)。一般地,客戶端對于數(shù)據(jù)的傳輸是通過傳輸包含數(shù)據(jù)的文件來實(shí)現(xiàn)的。
現(xiàn)有技術(shù)中,在發(fā)送端發(fā)送文件前,發(fā)送端首先會校驗(yàn)接收端是否已經(jīng)存儲有與所述文件相同的文件,如果接收端已經(jīng)存儲有與所述文件相同的文件,則發(fā)送端不對所述文件進(jìn)行傳輸;如果接收端不存在與所述文件相同的文件,則發(fā)送端對所述文件進(jìn)行傳輸。但是,如果接收端正在接收與所述文件相同的文件,此時接收端并不存在與所述文件相同的文件,則發(fā)送端仍會對所述文件進(jìn)行傳輸,這樣便使得相同的文件進(jìn)行了至少2次傳輸,導(dǎo)致處理資源的浪費(fèi)。
技術(shù)實(shí)現(xiàn)要素:
本申請實(shí)施例提供一種計(jì)算機(jī)文件傳輸方法,用以解決現(xiàn)有技術(shù)中的文件傳輸方式存在的處理資源浪費(fèi)的問題。
本申請實(shí)施例還提供一種計(jì)算機(jī)文件傳輸裝置,用以解決現(xiàn)有技術(shù)中的文件傳輸方式存在的處理資源浪費(fèi)的問題。
本申請實(shí)施例采用下述技術(shù)方案:
一種計(jì)算機(jī)文件傳輸方法,包括:
在發(fā)送端需要向接收端傳輸待傳輸文件前,判斷所述待傳輸文件是否已被所述發(fā)送端執(zhí)行過針對所述接收端的傳輸操作;
如果是,則判斷所述針對接收端的傳輸操作是否成功,若所述針對接收端 的傳輸操作成功,則拒絕向所述接收端傳輸所述待傳輸文件,若所述針對接收端的傳輸操作失敗,則根據(jù)與所述待傳輸文件對應(yīng)的重新傳輸規(guī)則向所述接收端傳輸所述待傳輸文件;
如果否,則向所述接收端傳輸所述待傳輸文件。
一種計(jì)算機(jī)文件傳輸裝置,包括:
第一執(zhí)行判斷單元,用于在發(fā)送端需要向接收端傳輸待傳輸文件前,判斷所述待傳輸文件是否已被所述發(fā)送端執(zhí)行過針對所述接收端的傳輸操作;
第一文件傳輸單元,包括第一判斷子單元、第一拒絕子單元和第一傳輸子單元和第二傳輸子單元,其中:
所述第一判斷子單元,用于如果所述待傳輸文件已被所述發(fā)送端執(zhí)行過針對所述接收端的傳輸操作,則判斷所述針對接收端的傳輸操作是否成功;
所述第一拒絕子單元,用于若所述針對接收端的傳輸操作成功,則拒絕向所述接收端傳輸所述待傳輸文件;
所述第一傳輸子單元,用于若所述針對接收端的傳輸操作失敗,則根據(jù)與所述待傳輸文件對應(yīng)的重新傳輸規(guī)則向所述接收端傳輸所述待傳輸文件;
所述第二傳輸子單元,用于如果所述待傳輸文件未被所述發(fā)送端執(zhí)行過針對所述接收端的傳輸操作,則向所述接收端傳輸所述待傳輸文件。
一種計(jì)算機(jī)文件傳輸方法,包括:
創(chuàng)建用于監(jiān)測文件傳輸狀態(tài)的守護(hù)任務(wù);
在發(fā)送端需要向接收端傳輸待傳輸文件時,啟動所述守護(hù)任務(wù);
在監(jiān)測到所述待傳輸文件傳輸失敗時,執(zhí)行所述守護(hù)任務(wù),所述守護(hù)任務(wù)用于根據(jù)與所述待傳輸文件對應(yīng)的重新傳輸規(guī)則,對所述待傳輸文件執(zhí)行重新傳輸操作。
一種計(jì)算機(jī)文件傳輸裝置,包括:
守護(hù)任務(wù)創(chuàng)建單元,用于創(chuàng)建用于監(jiān)測文件傳輸狀態(tài)的守護(hù)任務(wù);
守護(hù)任務(wù)啟動單元,用于在發(fā)送端需要向接收端傳輸待傳輸文件時,啟動 所述守護(hù)任務(wù);
守護(hù)任務(wù)執(zhí)行單元,在監(jiān)測到所述待傳輸文件傳輸失敗時,執(zhí)行所述守護(hù)任務(wù),所述守護(hù)任務(wù)用于根據(jù)與所述待傳輸文件對應(yīng)的重新傳輸規(guī)則,對所述待傳輸文件執(zhí)行重新傳輸操作。
本申請實(shí)施例采用的上述至少一個技術(shù)方案能夠達(dá)到以下有益效果:
相對于現(xiàn)有技術(shù)中通過判斷接收端是否存在與待傳輸文件相同的文件,來確定是否執(zhí)行對待傳輸文件的傳輸操作,本方案通過判斷待傳輸文件是否已被執(zhí)行過傳輸操作,來確定是否對待傳輸文件執(zhí)行傳輸操作,避免了現(xiàn)有技術(shù)中發(fā)送端正在執(zhí)行對待傳輸文件的傳輸操作但接收端未接收到待傳輸文件時,發(fā)送端會重新執(zhí)行對待傳輸文件的傳輸操作導(dǎo)致的處理資源耗費(fèi)較大的問題。
附圖說明
此處所說明的附圖用來提供對本申請的進(jìn)一步理解,構(gòu)成本申請的一部分,本申請的示意性實(shí)施例及其說明用于解釋本申請,并不構(gòu)成對本申請的不當(dāng)限定。在附圖中:
圖1為本申請實(shí)施例1提供的一種計(jì)算機(jī)文件傳輸方法的實(shí)現(xiàn)流程示意圖;
圖2為本申請實(shí)施例1提供的一種計(jì)算機(jī)文件傳輸方法中各模塊的關(guān)系示意圖;
圖3為本申請實(shí)施例2提供的一種計(jì)算機(jī)文件傳輸方法的一種實(shí)現(xiàn)流程示意圖;
圖4為本申請實(shí)施例3提供的一種計(jì)算機(jī)文件傳輸裝置的具體結(jié)構(gòu)示意圖;
圖5為本申請實(shí)施例4提供的一種計(jì)算機(jī)文件傳輸裝置的具體結(jié)構(gòu)示意圖。
具體實(shí)施方式
為使本申請的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本申請具體實(shí)施例及相應(yīng)的附圖對本申請技術(shù)方案進(jìn)行清楚、完整地描述。顯然,所描述的實(shí)施例僅是本申請一部分實(shí)施例,而不是全部的實(shí)施例。基于本申請中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本申請保護(hù)的范圍。
以下結(jié)合附圖,詳細(xì)說明本申請各實(shí)施例提供的技術(shù)方案。
實(shí)施例1
為解決現(xiàn)有技術(shù)中的文件傳輸方式存在的處理資源浪費(fèi)的問題,本申請實(shí)施例1提供一種計(jì)算機(jī)文件傳輸方法。該方法的執(zhí)行主體可以是服務(wù)器,也可以是智能終端。所述執(zhí)行主體并不構(gòu)成對本申請的限定,為了便于描述,本申請實(shí)施例均以執(zhí)行主體是服務(wù)器為例進(jìn)行說明。
該方法的實(shí)現(xiàn)流程示意圖如圖1所示,包括下述步驟:
步驟11:在發(fā)送端需要向接收端傳輸待傳輸文件前,判斷所述待傳輸文件是否已被所述發(fā)送端執(zhí)行過針對所述接收端的傳輸操作;
本申請實(shí)施例中,所述發(fā)送端可以是服務(wù)器,也可以是智能終端,所述接收端可以是服務(wù)器,也可以是智能終端。所述智能終端比如可以是智能手機(jī)、平板電腦等任何可以執(zhí)行文件傳輸操作的終端。
本申請實(shí)施例中,所述待傳輸文件可以是任何格式的文件,所述待傳輸文件的存儲位置可以是所述發(fā)送端的存儲介質(zhì)中,本方法不對所述待傳輸文件的格式和存儲位置做任何限定。所述待傳輸文件可以被所述發(fā)送端執(zhí)行傳輸操作。
本申請實(shí)施例中,發(fā)送端可以接收文件傳輸請求,進(jìn)而可以根據(jù)所述文件傳輸請求,執(zhí)行文件傳輸操作。所述文件傳輸請求可以用于請求發(fā)送端對所述待傳輸文件執(zhí)行文件傳輸操作,所述文件傳輸請求可以是由用戶輸入的文件傳 輸指令提供的,也可以是預(yù)設(shè)的定時任務(wù)觸發(fā)的。
本申請實(shí)施例中,所述文件傳輸請求可以包含待傳輸文件條件,以便發(fā)送端確定符合待傳輸文件條件的文件為待傳輸文件,進(jìn)而對所述待傳輸文件執(zhí)行所述傳輸操作。所述待傳輸文件條件可以是發(fā)送端用于確定所述待傳輸文件的條件,所述待傳輸文件條件比如可以是文件的存儲位置信息、修改時間信息以及名稱等用以確定待傳輸文件的條件中的至少一項(xiàng)。
本申請實(shí)施例中,所述文件傳輸請求中還可以包含與接收端相關(guān)的信息,以便發(fā)送端確定文件傳輸?shù)慕邮斩恕?/p>
在確定所述待傳輸文件和所述接收端后,為了避免由于同一文件多次向同一接收端進(jìn)行傳輸造成的處理資源的浪費(fèi)。本申請實(shí)施例中,在發(fā)送端需要向接收端傳輸待傳輸文件前,可以判斷所述待傳輸文件是否已被發(fā)送端執(zhí)行過針對所述接收端的傳輸操作。所述被發(fā)送端執(zhí)行過針對所述接收端的傳輸操作,指發(fā)送端已經(jīng)向所述接收端執(zhí)行過開始傳輸所述待傳輸文件的操作,至于所述待傳輸文件是否成功傳輸至接收端,在此不做限定。
本申請實(shí)施例中,所述同一文件指文件的內(nèi)容、大小、修改時間等信息完全相同的文件。一般地,在實(shí)際應(yīng)用中,可以利用文件的唯一標(biāo)識對兩個文件是否是同一文件進(jìn)行判斷,如果兩個文件的唯一標(biāo)識相同,則判定兩個文件為同一文件,如果兩個文件的唯一標(biāo)識不同,則判定兩個文件不是同一文件。
在實(shí)際應(yīng)用中,所述唯一標(biāo)識比如可以是文件的哈希值。所述文件的哈希值是指根據(jù)文件的內(nèi)容通過邏輯運(yùn)算得到的數(shù)值。所述邏輯運(yùn)算比如可以是消息摘要算法第五版(messagedigestalgorithmmd5,md5),則所述文件的哈希值為文件的md5值。由于通過邏輯運(yùn)算得到文件的哈希值已是比較成熟的相關(guān)技術(shù),本說明書中對此不再進(jìn)一步贅述。
在實(shí)際應(yīng)用中,在判斷所述待傳輸文件是否已被發(fā)送端執(zhí)行過針對所述接收端的傳輸操作時,可以通過判斷是否能夠成功將待傳輸文件的唯一標(biāo)識作為數(shù)據(jù)庫表的主鍵的值寫入預(yù)設(shè)的數(shù)據(jù)庫中來判斷。
所述數(shù)據(jù)庫的主鍵為數(shù)據(jù)庫表中的一個或多個字段,用于唯一標(biāo)識數(shù)據(jù)庫表中的某一條記錄。數(shù)據(jù)庫表的主鍵的值具有唯一性,當(dāng)嘗試向數(shù)據(jù)庫表中寫入新的記錄時,數(shù)據(jù)庫會自動檢查新記錄的主鍵的值,如果新紀(jì)錄的主鍵的值與所述數(shù)據(jù)庫表中其它記錄的主鍵的值相同,則拒絕所述新紀(jì)錄的寫入請求。
本申請實(shí)施例中,可以通過將待傳輸文件的唯一標(biāo)識作為數(shù)據(jù)庫表的主鍵的值寫入預(yù)設(shè)的數(shù)據(jù)庫中,用于實(shí)現(xiàn)記錄所述待傳輸文件已被執(zhí)行過針對所述接收端的傳輸操作。由于數(shù)據(jù)庫表的主鍵的值具有唯一性,所以在嘗試將待傳輸文件的唯一標(biāo)識作為數(shù)據(jù)庫表的主鍵的值寫入預(yù)設(shè)的數(shù)據(jù)庫中時,如果寫入成功,則可以判定所述待傳輸文件未被執(zhí)行過針對所述接收端的傳輸操作,如果寫入失敗,則判定所述待傳輸文件已被執(zhí)行過針對所述接收端的傳輸操作。
步驟12:如果所述待傳輸文件已被執(zhí)行過針對所述接收端的傳輸操作,則判斷所述針對接收端的傳輸操作是否成功,若所述針對接收端的傳輸操作成功,則拒絕向所述接收端傳輸所述待傳輸文件,若所述針對接收端的傳輸操作失敗,則根據(jù)與所述待傳輸文件對應(yīng)的重新傳輸規(guī)則向所述接收端傳輸所述待傳輸文件;
本申請實(shí)施例中,作為步驟12執(zhí)行主體的服務(wù)器可以是發(fā)送端,也可以是發(fā)送端和接收端之外的第三方設(shè)備。
當(dāng)所述步驟12的執(zhí)行主體是第三方設(shè)備時,步驟12的具體實(shí)現(xiàn)方式,其實(shí)是服務(wù)器通知發(fā)送端拒絕向接收端傳輸所述待傳輸文件。
本申請實(shí)施例中,如果所述待傳輸文件已被所述發(fā)送端執(zhí)行過針對所述接收端的傳輸操作,則所述待傳輸文件可能正在被所述發(fā)送端執(zhí)行針對所述接收端的傳輸操作,但所述接收端尚未完整接收到所述待傳輸文件,那么可以拒絕向所述接收端傳輸所述待傳輸文件;所述待傳輸文件也可能是已經(jīng)被所述發(fā)送端執(zhí)行過針對所述接收端傳輸操作,但傳輸操作失敗。
在實(shí)際應(yīng)用中,可以通過接收文件傳輸模塊對文件傳輸操作的執(zhí)行結(jié)果的反饋,來判斷所述針對接收端的傳輸操作是否成功;也可以通過注冊守護(hù)任務(wù) 來檢測所述針對接收端的傳輸操作是否成功。其中,所述文件傳輸模塊為對待傳輸文件執(zhí)行文件傳輸操作的模塊。
本申請實(shí)施例中,所述守護(hù)任務(wù)可以用于監(jiān)測文件傳輸狀態(tài);在發(fā)送端需要向接收端傳輸待傳輸文件時,可以啟動所述守護(hù)任務(wù);在監(jiān)測到所述待傳輸文件傳輸失敗時,可以執(zhí)行所述守護(hù)任務(wù)。所述守護(hù)任務(wù)用于根據(jù)與所述待傳輸文件對應(yīng)的重新傳輸規(guī)則,對所述待傳輸文件執(zhí)行重新傳輸操作。
本申請實(shí)施例中,如果所述待傳輸文件已經(jīng)被所述發(fā)送端執(zhí)行過針對所述接收端傳輸操作,但傳輸操作失敗,那么可以根據(jù)與所述待傳輸文件對應(yīng)的重新傳輸規(guī)則向所述接收端傳輸所述待傳輸文件。
本申請實(shí)施例中,所述重新傳輸規(guī)則為對待傳輸文件執(zhí)行重新傳輸操作時所遵循的規(guī)則,所述重新傳輸規(guī)則中,比如可以包括對待傳輸文件執(zhí)行重新傳輸操作的次數(shù)和每次執(zhí)行重新傳輸操作的時刻。
由于不同待傳輸文件對重新傳輸規(guī)則的要求可能不同,則可以根據(jù)待傳輸文件對重新傳輸規(guī)則的要求,預(yù)先設(shè)置與所述待傳輸文件的重新傳輸規(guī)則要求對應(yīng)的重新傳輸規(guī)則。,所述與所述待傳輸文件對應(yīng)的重新傳輸規(guī)則包括:與所述待傳輸文件匹配的、預(yù)先設(shè)置的執(zhí)行重新傳輸操作的次數(shù)和每次執(zhí)行重新傳輸操作的時刻。比如可以根據(jù)待傳輸文件對時效性的要求,設(shè)置與所述待傳輸文件的時效性要求相匹配的執(zhí)行重新傳輸操作的時刻。如果所述待傳輸文件傳輸失敗,則可以根據(jù)與所述待傳輸文件匹配的、預(yù)先設(shè)置的執(zhí)行重新傳輸操作的次數(shù)和時刻,對所述待傳輸文件執(zhí)行重新傳輸操作。
本申請實(shí)施例中,在對待傳輸文件執(zhí)行重新傳輸操作時,還可以根據(jù)上次傳輸操作失敗的原因,對待傳輸文件進(jìn)行重新傳輸操作,以便提高文件傳輸?shù)某晒β省?/p>
具體地,如果所述待傳輸文件傳輸失敗,則獲取待傳輸文件傳輸失敗的原因,根據(jù)待傳輸文件傳輸失敗的原因和與所述待傳輸文件對應(yīng)的重新傳輸規(guī)則,確定與所述待傳輸文件失敗的原因相對應(yīng)的操作,在執(zhí)行與所述待傳輸文 件失敗的原因相對應(yīng)的操作后,對所述待傳輸文件執(zhí)行重新傳輸操作。例如,當(dāng)所述待傳輸文件傳輸失敗的原因是網(wǎng)絡(luò)連接斷開時,則可以在執(zhí)行網(wǎng)絡(luò)連接操作后,再對所述待傳輸文件執(zhí)行重新傳輸操作。
通過執(zhí)行與所述待傳輸文件失敗的原因相對應(yīng)的操作,可以避免導(dǎo)致文件傳輸失敗的原因仍然存在時,繼續(xù)對所述待傳輸文件執(zhí)行重新傳輸操作,導(dǎo)致的資源浪費(fèi)問題,提高了文件傳輸?shù)某晒β省?/p>
需要說明的是,如果在根據(jù)待傳輸文件傳輸失敗的原因和與所述待傳輸文件對應(yīng)的重新傳輸規(guī)則,對所述待傳輸文件執(zhí)行重新傳輸操作后,仍然無法成功傳輸待傳輸文件,則可以向用戶發(fā)出文件傳輸失敗的通知,并告知文件傳輸失敗的原因。比如,可以將對待傳輸文件執(zhí)行傳輸操作(包括重新傳輸操作)的整個過程中的所有操作以日志的形式進(jìn)行記錄,日志中可以記錄對待傳輸文件執(zhí)行傳輸操作的時刻、對待傳輸文件執(zhí)行重新傳輸操作的時刻、待傳輸文件傳輸失敗的原因,等等。
在實(shí)際應(yīng)用中,在向所述接收端傳輸所述待傳輸文件后,可以通過創(chuàng)建守護(hù)任務(wù),并在文件傳輸失敗后執(zhí)行所述守護(hù)任務(wù),進(jìn)而可以提高文件傳輸?shù)某晒β?。所述守護(hù)任務(wù)用于在所述待傳輸文件傳輸失敗后,根據(jù)與所述待傳輸文件對應(yīng)的重新傳輸規(guī)則,對所述待傳輸文件執(zhí)行重新傳輸操作,即可以針對不同時效要求的待傳輸文件,配置不同的重新傳輸規(guī)則。即如果所述待傳輸文件傳輸失敗,則執(zhí)行所述守護(hù)任務(wù),如果所述待傳輸文件傳輸成功,則取消所述守護(hù)任務(wù)。
步驟13:如果所述待傳輸文件未被執(zhí)行過針對所述接收端的傳輸操作,則向所述接收端傳輸所述待傳輸文件。
本申請實(shí)施例中,作為步驟13執(zhí)行主體的服務(wù)器可以是發(fā)送端,也可以是發(fā)送端和接收端之外的第三方設(shè)備。
當(dāng)所述步驟13的執(zhí)行主體是第三方設(shè)備時,步驟13的具體實(shí)現(xiàn)方式,其實(shí)是服務(wù)器通知發(fā)送端拒絕向接收端傳輸所述待傳輸文件。
本申請實(shí)施例中,在向所述接收端傳輸所述待傳輸文件后,如果所述待傳輸文件傳輸失敗,則可以根據(jù)與所述待傳輸文件對應(yīng)的重新傳輸規(guī)則,對所述待傳輸文件執(zhí)行重新傳輸操作。
在實(shí)際應(yīng)用中,如果對文件進(jìn)行一次重新傳輸后,所述待傳輸文件仍然無法傳輸成功,則可以繼續(xù)對所述待傳輸文件執(zhí)行重新傳輸操作,即可以對所述待傳輸文件執(zhí)行多次重新傳輸操作。
本申請實(shí)施例提供的計(jì)算機(jī)文件傳輸方法,可以但不限于由服務(wù)器的下述模塊執(zhí)行:文件傳輸模塊、業(yè)務(wù)補(bǔ)償模塊、調(diào)度模塊。如圖2所示。
其中,所述文件傳輸模塊可以執(zhí)行對待傳輸文件的文件傳輸操作,并可以將所述文件傳輸操作的結(jié)果告知業(yè)務(wù)補(bǔ)償模塊。
所述業(yè)務(wù)補(bǔ)償模塊指對文件傳輸模塊的文件傳輸業(yè)務(wù)進(jìn)行補(bǔ)償操作的模塊。所述補(bǔ)償操作,即:在發(fā)送端需要向接收端傳輸待傳輸文件前,創(chuàng)建守護(hù)任務(wù),檢測文件傳輸狀態(tài);在監(jiān)測到所述待傳輸文件傳輸失敗時,執(zhí)行所述守護(hù)任務(wù),則執(zhí)行所述守護(hù)任務(wù),即根據(jù)調(diào)度模塊提供的重新傳輸規(guī)則向文件傳輸模塊發(fā)起執(zhí)行重新傳輸操作的請求;如果文件傳輸成功,則通知調(diào)度模塊取消所述守護(hù)任務(wù)。
所述調(diào)度模塊用于調(diào)度所述業(yè)務(wù)補(bǔ)償模塊執(zhí)行所述守護(hù)任務(wù)。調(diào)度模塊可以獲取業(yè)務(wù)補(bǔ)償模塊提供的重新傳輸規(guī)則,根據(jù)所述重新傳輸規(guī)則,調(diào)度業(yè)務(wù)補(bǔ)償模塊向文件傳輸模塊發(fā)起執(zhí)行重新傳輸操作的請求。
需要說明的是,本申請實(shí)施例中,所述文件傳輸模塊、業(yè)務(wù)補(bǔ)償模塊和調(diào)度模塊均可以是同一設(shè)備,也可以是不同設(shè)備。比如,所述文件傳輸模塊和業(yè)務(wù)補(bǔ)償模塊可以為設(shè)備1,所述調(diào)度模塊可以為設(shè)備2;又比如,所述文件傳輸模塊可以為設(shè)備1,所述業(yè)務(wù)補(bǔ)償模塊和調(diào)度模塊可以為設(shè)備2;等等。
需要說明的是,實(shí)施例1所提供方法的各步驟的執(zhí)行主體均可以是同一設(shè)備,或者,該方法也由不同設(shè)備作為執(zhí)行主體。比如,步驟11和步驟12的執(zhí)行主體可以為設(shè)備1,步驟13的執(zhí)行主體可以為設(shè)備2;又比如,步驟11的 執(zhí)行主體可以為設(shè)備1,步驟12和步驟13的執(zhí)行主體可以為設(shè)備2;等等。
相對于現(xiàn)有技術(shù)中通過判斷接收端是否存在與待傳輸文件相同的文件,來確定是否執(zhí)行對待傳輸文件的傳輸操作,本申請實(shí)施例1提供的計(jì)算機(jī)文件傳輸方法,通過判斷待傳輸文件是否已被執(zhí)行過傳輸操作,來確定是否對待傳輸文件執(zhí)行傳輸操作,避免了現(xiàn)有技術(shù)中發(fā)送端正在執(zhí)行對待傳輸文件的傳輸操作但接收端未接收到待傳輸文件時,發(fā)送端會重新執(zhí)行對待傳輸文件的傳輸操作導(dǎo)致的處理資源耗費(fèi)較大的問題。
實(shí)施例2
本申請實(shí)施例2,主要介紹本申請實(shí)施例1提供的上述方法在實(shí)際中的一種應(yīng)用方案。
實(shí)施例2提供的計(jì)算機(jī)文件傳輸方法如圖3所示,包括下述步驟:
步驟201:發(fā)送端接收文件傳輸請求;
其中,所述文件傳輸請求中包含待傳輸文件的位置信息以及接收端信息。
步驟202:發(fā)送端計(jì)算所述待傳輸文件的md5值;
步驟203:嘗試將所述待傳輸文件的md5值作為數(shù)據(jù)庫表的主鍵值寫入預(yù)設(shè)的數(shù)據(jù)庫中,并判斷是否能夠?qū)懭氤晒Γ?/p>
若寫入失敗,則執(zhí)行步驟204,若寫入成功,則執(zhí)行步驟205。
步驟204:如果寫入失敗,且寫入失敗的原因是預(yù)設(shè)數(shù)據(jù)庫中已存在相同主鍵值,則判定所述待傳輸文件已被執(zhí)行過針對所述接收端的傳輸操作,拒絕向所述接收端傳輸所述待傳輸文件;
步驟205:如果寫入成功,則判定所述待傳輸文件未被執(zhí)行過針對所述接收端的傳輸操作,向所述接收端傳輸所述待傳輸文件,進(jìn)而執(zhí)行步驟206;
步驟206:創(chuàng)建守護(hù)任務(wù);并配置守護(hù)任務(wù)通知執(zhí)行重新傳輸操作的次數(shù)和時刻;
步驟207:判斷所述待傳輸文件是否傳輸成功;
步驟208:如果所述待傳輸文件傳輸成功,則取消所述守護(hù)任務(wù);
步驟209:如果所述待傳輸文件傳輸失敗,則執(zhí)行所述守護(hù)任務(wù),并根據(jù)所述守護(hù)任務(wù)執(zhí)行重新傳輸操作;
步驟230:如果在執(zhí)行所述守護(hù)任務(wù)后,所述重新傳輸操作仍失敗,則發(fā)出文件傳輸失敗的通知。
相對于現(xiàn)有技術(shù)中通過判斷接收端是否存在與待傳輸文件相同的文件,來確定是否執(zhí)行對待傳輸文件的傳輸操作,本申請實(shí)施例2提供的計(jì)算機(jī)文件傳輸方法,通過判斷待傳輸文件是否已被執(zhí)行過傳輸操作,來確定是否對待傳輸文件執(zhí)行傳輸操作,避免了現(xiàn)有技術(shù)中發(fā)送端正在執(zhí)行對待傳輸文件的傳輸操作但接收端未接收到待傳輸文件時,發(fā)送端會重新執(zhí)行對待傳輸文件的傳輸操作導(dǎo)致的處理資源耗費(fèi)較大的問題。
實(shí)施例3
為解決現(xiàn)有技術(shù)中的文件傳輸方式存在的處理資源浪費(fèi)的問題,本申請實(shí)施例3提供一種計(jì)算機(jī)文件傳輸裝置。該計(jì)算機(jī)文件傳輸裝置的結(jié)構(gòu)示意圖如圖4所示,主要包括下述功能單元:
第一執(zhí)行判斷單元31,用于在發(fā)送端需要向接收端傳輸待傳輸文件前,判斷所述待傳輸文件是否已被所述發(fā)送端執(zhí)行過針對所述接收端的傳輸操作;
第一文件傳輸單元32,包括第一判斷子單元、第一拒絕子單元和第一傳輸子單元和第二傳輸子單元,其中:
所述第一判斷子單元,用于如果所述待傳輸文件已被所述發(fā)送端執(zhí)行過針對所述接收端的傳輸操作,則判斷所述針對接收端的傳輸操作是否成功;
所述第一拒絕子單元,用于若所述針對接收端的傳輸操作成功,則拒絕向所述接收端傳輸所述待傳輸文件;
所述第一傳輸子單元,用于若所述針對接收端的傳輸操作失敗,則根據(jù)與所述待傳輸文件對應(yīng)的重新傳輸規(guī)則向所述接收端傳輸所述待傳輸文件;
所述第二傳輸子單元,用于如果所述待傳輸文件未被所述發(fā)送端執(zhí)行過針對所述接收端的傳輸操作,則向所述接收端傳輸所述待傳輸文件。
在一種實(shí)施方式中,所述第一執(zhí)行判斷單元31,具體包括標(biāo)識獲取子單元、標(biāo)識寫入子單元、判斷子單元,其中:
所述標(biāo)識獲取子單元,用于獲取所述待傳輸文件的唯一標(biāo)識;
所述標(biāo)識寫入子單元,用于嘗試將所述唯一標(biāo)識作為數(shù)據(jù)庫表的主鍵值寫入預(yù)設(shè)數(shù)據(jù)庫中;
所述判斷子單元,用于判斷所述唯一標(biāo)識是否成功寫入所述預(yù)設(shè)數(shù)據(jù)庫中,如果成功寫入,則判定所述待傳輸文件未被執(zhí)行過針對所述接收端的傳輸操作;如果寫入失敗,且寫入失敗的原因是預(yù)設(shè)數(shù)據(jù)庫中已存在相同主鍵值,則判定所述待傳輸文件已被執(zhí)行過針對所述接收端的傳輸操作。
重試單元33,用于在所述待傳輸文件未被所述發(fā)送端執(zhí)行過針對所述接收端的傳輸操作,向所述接收端傳輸所述待傳輸文件后,如果所述待傳輸文件傳輸失敗,則根據(jù)與所述待傳輸文件對應(yīng)的重新傳輸規(guī)則,對所述待傳輸文件執(zhí)行重新傳輸操作。
為了增加文件傳輸?shù)某晒β?,在一種實(shí)施方式中,所述重試單元33,具體包括失敗原因獲取子單元和重新傳輸子單元,其中:
所述失敗原因獲取子單元,用于如果所述待傳輸文件傳輸失敗,則獲取待傳輸文件傳輸失敗的原因;
所述重新傳輸子單元,用于根據(jù)待傳輸文件傳輸失敗的原因和與所述待傳輸文件對應(yīng)的重新傳輸規(guī)則,對所述待傳輸文件執(zhí)行重新傳輸操作。
所述與所述待傳輸文件對應(yīng)的重新傳輸規(guī)則包括:與所述待傳輸文件匹配的、預(yù)先設(shè)置的執(zhí)行重新傳輸操作的次數(shù)和每次執(zhí)行重新傳輸操作的時刻。
相對于現(xiàn)有技術(shù)中通過判斷接收端是否存在與待傳輸文件相同的文件,來確定是否執(zhí)行對待傳輸文件的傳輸操作,本申請實(shí)施例3提供的計(jì)算機(jī)文件傳輸裝置,通過判斷待傳輸文件是否已被執(zhí)行過傳輸操作,來確定是否對待傳輸 文件執(zhí)行傳輸操作,避免了現(xiàn)有技術(shù)中發(fā)送端正在執(zhí)行對待傳輸文件的傳輸操作但接收端未接收到待傳輸文件時,發(fā)送端會重新執(zhí)行對待傳輸文件的傳輸操作導(dǎo)致的處理資源耗費(fèi)較大的問題。
實(shí)施例4
為解決現(xiàn)有技術(shù)中的文件傳輸方式存在的處理資源浪費(fèi)的問題,本申請實(shí)施例3提供一種計(jì)算機(jī)文件傳輸裝置。該計(jì)算機(jī)文件傳輸裝置的結(jié)構(gòu)示意圖如圖4所示,主要包括下述功能單元:
守護(hù)任務(wù)創(chuàng)建單元41,用于創(chuàng)建用于監(jiān)測文件傳輸狀態(tài)的守護(hù)任務(wù);
守護(hù)任務(wù)啟動單元42,用于在發(fā)送端需要向接收端傳輸待傳輸文件時,啟動所述守護(hù)任務(wù);
守護(hù)任務(wù)執(zhí)行單元43,在監(jiān)測到所述待傳輸文件傳輸失敗時,執(zhí)行所述守護(hù)任務(wù),所述守護(hù)任務(wù)用于根據(jù)與所述待傳輸文件對應(yīng)的重新傳輸規(guī)則,對所述待傳輸文件執(zhí)行重新傳輸操作。
第二執(zhí)行判斷單元44,用于在發(fā)送端需要向接收端傳輸待傳輸文件前,判斷所述待傳輸文件是否已被所述發(fā)送端執(zhí)行過針對所述接收端的傳輸操作;
第二文件傳輸單元45,包括第二判斷子單元、第二拒絕子單元和第三傳輸子單元和第四傳輸子單元,其中:
所述第二判斷子單元,用于如果所述待傳輸文件已被所述發(fā)送端執(zhí)行過針對所述接收端的傳輸操作,則判斷所述針對接收端的傳輸操作是否成功;
所述第二拒絕子單元,用于若所述針對接收端的傳輸操作成功,則拒絕向所述接收端傳輸所述待傳輸文件;
所述第三傳輸子單元,用于若所述針對接收端的傳輸操作失敗,則向所述接收端傳輸所述待傳輸文件;
所述第四傳輸子單元,用于如果所述待傳輸文件未被所述發(fā)送端執(zhí)行過針對所述接收端的傳輸操作,則向所述接收端傳輸所述待傳輸文件。
守護(hù)任務(wù)取消單元46,用于在監(jiān)測到所述待傳輸文件傳輸成功時,則取消所述守護(hù)任務(wù)。
相對于現(xiàn)有技術(shù)中通過判斷接收端是否存在與待傳輸文件相同的文件,來確定是否執(zhí)行對待傳輸文件的傳輸操作,本申請實(shí)施例3提供的計(jì)算機(jī)文件傳輸裝置,通過判斷待傳輸文件是否已被執(zhí)行過傳輸操作,來確定是否對待傳輸文件執(zhí)行傳輸操作,避免了現(xiàn)有技術(shù)中發(fā)送端正在執(zhí)行對待傳輸文件的傳輸操作但接收端未接收到待傳輸文件時,發(fā)送端會重新執(zhí)行對待傳輸文件的傳輸操作導(dǎo)致的處理資源耗費(fèi)較大的問題。通過創(chuàng)建守護(hù)任務(wù),增加了文件傳輸操作的成功率。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲介質(zhì)(包括但不限于磁盤存儲器、cd-rom、光學(xué)存儲器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計(jì)算機(jī)程序指令也可存儲在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲器中,使得存儲在該計(jì)算機(jī)可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
以上所述僅為本申請的實(shí)施例而已,并不用于限制本申請。對于本領(lǐng)域技術(shù)人員來說,本申請可以有各種更改和變化。凡在本申請的精神和原理之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本申請的權(quán)利要求范圍之內(nèi)。