
本申請涉及網(wǎng)絡技術,特別涉及一種文件處理方法和裝置。
背景技術:
:在很多網(wǎng)絡業(yè)務的業(yè)務執(zhí)行過程中,均涉及到文件處理。比如,在一個理財產(chǎn)品應用中,如果要完成某個應用業(yè)務,在業(yè)務執(zhí)行過程中,需要創(chuàng)建一些文件,例如創(chuàng)建一個業(yè)務單據(jù)或者生成一個業(yè)務數(shù)據(jù)文件等。這些文件的處理通常由一個文件系統(tǒng)來管理。該文件系統(tǒng)可以負責多個業(yè)務的文件處理,在業(yè)務執(zhí)行中,文件系統(tǒng)可以導入一些基礎文件,并結合業(yè)務執(zhí)行過程中的數(shù)據(jù)處理,再生成一些新的業(yè)務文件?,F(xiàn)有技術中,如果業(yè)務執(zhí)行過程中遇到諸如網(wǎng)絡異常、超時等原因?qū)е聵I(yè)務執(zhí)行中斷,那么下次該業(yè)務重新執(zhí)行時,文件系統(tǒng)需要重新導入基礎文件,并在文件的使用中重新讀取和解析這些文件,造成文件處理的進度較為緩慢,影響了業(yè)務的執(zhí)行效率,當有多個業(yè)務都執(zhí)行文件處理時,緩慢的處理進度也使得文件系統(tǒng)的壓力較大。技術實現(xiàn)要素:有鑒于此,本申請?zhí)峁┮环N文件處理方法和裝置,以提高業(yè)務執(zhí)行中的文件處理效率。具體地,本申請是通過如下技術方案實現(xiàn)的:第一方面,提供一種文件處理方法,所述方法應用于業(yè)務執(zhí)行過程中的文件處理,所述文件處理的過程包括多個文件處理階段;所述方法包括:當執(zhí)行文件處理過程中的一個文件處理階段發(fā)生處理異常時,記錄與所 述文件處理階段對應的處理異常狀態(tài)標識;定期獲取發(fā)生處理異常的文件處理,并根據(jù)所述處理異常狀態(tài)標識,由對應的所述文件處理階段繼續(xù)文件處理過程。第二方面,提供一種文件處理裝置,所述裝置應用于業(yè)務執(zhí)行過程中的文件處理,所述文件處理的過程包括多個文件處理階段;所述裝置包括:狀態(tài)記錄模塊,用于當執(zhí)行文件處理過程中的一個文件處理階段發(fā)生處理異常時,記錄與所述文件處理階段對應的處理異常狀態(tài)標識;文件處理模塊,用于定期獲取發(fā)生處理異常的文件處理,并根據(jù)處理異常狀態(tài)標識,由對應的所述文件處理階段繼續(xù)文件處理過程。本申請?zhí)峁┑奈募幚矸椒ê脱b置,通過記錄文件處理階段發(fā)生處理異常時對應的處理異常狀態(tài)標識,并根據(jù)該標識繼續(xù)文件處理,使得即使存在由于網(wǎng)絡異常導致中斷的文件處理,文件系統(tǒng)也可以通過定期恢復機制,由發(fā)生異常的階段處繼續(xù)處理該任務,不用再重新從頭開始;并且,該定期恢復機制使得文件系統(tǒng)能夠自動定期執(zhí)行未完成任務的繼續(xù)執(zhí)行,促使該任務盡快的完成處理,從而提高了業(yè)務執(zhí)行中的文件處理效率。附圖說明圖1是本申請一示例性實施例示出的一種文件處理方法的流程;圖2是本申請一示例性實施例示出的一種業(yè)務執(zhí)行順序示意圖;圖3是本申請一示例性實施例示出的一種業(yè)務狀態(tài)轉換示意圖;圖4是本申請一示例性實施例示出的一種文件處理裝置的結構圖。具體實施方式這里將詳細地對示例性實施例進行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實施例中所描述的實施方式并不代表與本申請相一致的所有實施方式。相反,它們僅是與如所附權利要求書中所詳述的、本申請的一 些方面相一致的裝置和方法的例子。網(wǎng)絡業(yè)務的業(yè)務執(zhí)行過程中,涉及到文件處理,例如創(chuàng)建一個業(yè)務單據(jù)或者生成一個業(yè)務數(shù)據(jù)文件等。該文件處理可以由一個文件系統(tǒng)來執(zhí)行,并且該文件處理的過程可以包括多個文件處理階段,比如,創(chuàng)建業(yè)務單的階段、執(zhí)行業(yè)務邏輯的階段、業(yè)務數(shù)據(jù)合并的階段、結果文件生成的階段等。在每一個文件處理階段,都可能遇到一些處理異常的情況,比如,諸如網(wǎng)絡中斷、網(wǎng)絡超時等網(wǎng)絡異常,此時就導致文件處理的中斷。如果對于這些文件處理中斷導致業(yè)務無法完整執(zhí)行的例子,都要再重頭開始重新執(zhí)行一遍,將會使得文件處理緩慢,也使得業(yè)務無法快速完成,并且文件系統(tǒng)通常會管理多個業(yè)務的文件處理,如果多個業(yè)務的文件處理進度都較為緩慢,也使得文件系統(tǒng)的壓力劇增?;诖?,本申請實施例提供了一種文件處理方法,旨在提高業(yè)務執(zhí)行中的文件處理效率,使得即使發(fā)生文件處理的中斷,也盡早的執(zhí)行完成本次文件處理的過程,保證業(yè)務的完整執(zhí)行。在本申請的文件處理方法中,可以對文件處理過程中的各個文件處理階段,都設置一個對應的執(zhí)行成功標識。如果在執(zhí)行過程中未發(fā)生異常,順利執(zhí)行,則將該文件處理對應的業(yè)務記錄一個狀態(tài)標識,即上述的執(zhí)行成功標識,不同文件處理階段完成時,對應的執(zhí)行成功標識是不同的,使得通過該執(zhí)行成功標識就可以得知該業(yè)務的文件處理進行到了哪個階段。例如,如下的表1示例了一種記錄方式,僅是示意,具體的記錄表格可以根據(jù)實際的業(yè)務情況進行設定。在表1中,可以是假設某個業(yè)務的文件處理包括了a、b、c、d四個階段,目前的階段是進行到了b階段,而括號中的a、c、d是表示其他可能的情況,比如也可以是執(zhí)行到c階段或d階段。表1狀態(tài)標識的記錄業(yè)務標識執(zhí)行成功標識status****b(a、c、d)當文件處理階段成功的順序執(zhí)行時,可以記錄上述表1的執(zhí)行成功標識; 當文件處理階段執(zhí)行失敗時,比如發(fā)生了網(wǎng)絡異常導致處理中斷,也可以記錄一個與該文件處理階段對應的處理異常狀態(tài)標識。這樣當下次再繼續(xù)執(zhí)行該業(yè)務時,就可以根據(jù)處理異常狀態(tài)標識,由對應的文件處理階段繼續(xù)文件處理過程,而不用再重頭開始再執(zhí)行一次文件處理的過程,從而可以提高文件處理的效率。該過程可以參見圖1所示的步驟。如下通過一個例子,來說明本申請的文件處理方法。以某個理財產(chǎn)品應用的業(yè)務執(zhí)行為例,假設要執(zhí)行理財產(chǎn)品的贖回業(yè)務。該贖回業(yè)務的執(zhí)行中,文件系統(tǒng)需要執(zhí)行的文件處理包括:導入一些基礎文件,該基礎文件可以是與第三方交互得到的數(shù)據(jù)文件,并且文件系統(tǒng)調(diào)用外圍的業(yè)務系統(tǒng),執(zhí)行業(yè)務處理邏輯,在執(zhí)行過程中結合數(shù)據(jù)文件,再生成一些新的業(yè)務文件。例如,該文件處理過程可以分為五個文件處理階段,包括:第一階段:導入基礎文件,進行解析文件和校驗。如果該階段成功執(zhí)行,可以設置對應的執(zhí)行成功標識是p。第二階段:將基礎文件進行文件拆分,將所執(zhí)行的業(yè)務拆分成多個子業(yè)務,各個子業(yè)務要分別執(zhí)行贖回邏輯。如果該拆分階段成功執(zhí)行,可以設置對應的執(zhí)行成功標識是s。第三階段:對于各個子業(yè)務,分別執(zhí)行贖回邏輯。如果該階段成功執(zhí)行,可以設置對應的執(zhí)行成功標識是m。第四階段:對完成贖回邏輯的各個子業(yè)務進行數(shù)據(jù)合并處理,如果該階段成功執(zhí)行,可以設置對應的執(zhí)行成功標識是g。第五階段:在數(shù)據(jù)處理結束后,生成本次贖回業(yè)務的結果文件。如果該階段成功執(zhí)行,可以設置對應的執(zhí)行成功標識是f。如果一個贖回業(yè)務完整執(zhí)行,那么上述的五個階段將順序執(zhí)行,相應的,在各個階段依次執(zhí)行的過程中,執(zhí)行成功標識也依次變更為p-s-m-g-f。參見圖2的示例,需要說明的是,當拆分成多個子業(yè)務后,可以為每一個子業(yè)務也分別建立對應的狀態(tài)標識,比如,各個子業(yè)務可以稱為業(yè)務分片,當該業(yè)務分片的贖回邏輯成功執(zhí)行后,該子業(yè)務對應的執(zhí)行成功標識也設置為m。 而包括該各個子業(yè)務的業(yè)務整體的狀態(tài)取決于各個子業(yè)務的狀態(tài),比如,若所有的子業(yè)務都成功執(zhí)行,則對應的整體狀態(tài)為m,如圖2所示。而如果其中包括執(zhí)行失敗的子業(yè)務,那業(yè)務整體狀態(tài)也處于失敗狀態(tài),不能標識m。上述對文件處理階段執(zhí)行成功時的狀態(tài)標識進行了設定,當文件處理階段未成功執(zhí)行時,比如超時、網(wǎng)絡中斷等,導致一個文件處理階段發(fā)生處理異常,本實施例可以設定這種網(wǎng)絡異常時的對應狀態(tài)為d,d表示該文件處理階段出現(xiàn)異常,未成功執(zhí)行,且失敗的原因是網(wǎng)絡異常。還有一種文件處理階段的失敗原因,不是網(wǎng)絡異常,而是解析文件錯誤,或者參數(shù)校驗失敗等,這種異常通??赡苁怯晌募旧硪?,文件本身可能出現(xiàn)了錯誤,本實施例可以用文件錯誤標識a來表示。上面的實施例中描述了對文件處理階段的一些狀態(tài)標識的設定,比如,p、s、m、g、f、d、a,文件系統(tǒng)可以負責多個業(yè)務的文件處理,每一個業(yè)務的文件處理都可以包括多個文件處理階段,盡管不同的業(yè)務,其文件處理包括的文件處理階段的段數(shù)或邏輯可能不同,但是可以采用如上述例子類似的方式來設定各個階段的狀態(tài),包括執(zhí)行成功時的狀態(tài)和失敗時的狀態(tài)。從文件系統(tǒng)來看,各個業(yè)務的執(zhí)行,可能分別執(zhí)行到了一定的文件處理階段,并且以對應的狀態(tài)標識表示了當前到達的階段;那么文件系統(tǒng)可以根據(jù)這些狀態(tài)標識,由對應的文件處理階段繼續(xù)處理,完成下一個文件處理階段時,即將狀態(tài)標識切換為下一個階段對應的執(zhí)行成功標識。也就是說,文件系統(tǒng)在執(zhí)行文件處理時,就根據(jù)記錄的狀態(tài)標識進行處理即可。如果文件處理均能正常執(zhí)行,那么就按照p-s-m-g-f的順序,直至完成整個處理。而如果執(zhí)行過程中發(fā)生了處理異常,則要執(zhí)行向處理異常狀態(tài)標識d或者文件錯誤標識a的轉換。請結合圖3來看,文件系統(tǒng)對于每個任務進行的狀態(tài)轉換,該任務可以是一個業(yè)務或者一個子業(yè)務,包括從成功狀態(tài)向異?;蝈e誤狀態(tài)的轉換。例如,對于p狀態(tài)的任務繼續(xù)處理時,當文件系統(tǒng)wx解析文件時發(fā)現(xiàn)文件核對有誤,可以將該任務的狀態(tài)由p更改為a?;蛘?,當文件系統(tǒng)wx 調(diào)用業(yè)務系統(tǒng)yx處理贖回邏輯,即拆分文件創(chuàng)建對應每個子業(yè)務時,如果出現(xiàn)網(wǎng)絡異常,則可以將p轉換成d。例如,對于s狀態(tài)的任務繼續(xù)處理時,當文件系統(tǒng)wx調(diào)用業(yè)務系統(tǒng)yx,業(yè)務系統(tǒng)yx調(diào)用另一個業(yè)務系統(tǒng)cx,業(yè)務系統(tǒng)cx調(diào)用再一個業(yè)務系統(tǒng)rx將資金發(fā)放到用戶賬戶完成,wx根據(jù)返回true時將任務狀態(tài)由s更新為m。而wx調(diào)用業(yè)務系統(tǒng)yx處理各個子業(yè)務的贖回業(yè)務邏輯時,業(yè)務系統(tǒng)yx出現(xiàn)網(wǎng)絡異?;蛘呦到y(tǒng)異常,wx將任務狀態(tài)由s變更為d。wx調(diào)用業(yè)務系統(tǒng)yx處理贖回業(yè)務時,業(yè)務系統(tǒng)yx調(diào)用業(yè)務系統(tǒng)cx,業(yè)務系統(tǒng)cx執(zhí)行參數(shù)校驗,校驗失敗時返回false,wx需將任務由s狀態(tài)變更為a。需要說明的是,這里執(zhí)行的是各個子業(yè)務的贖回邏輯,相應的,狀態(tài)的變化是各個子業(yè)務對應的狀態(tài)更新為m、或者d、或者a。結合圖2來看,如果其中的所有子業(yè)務的狀態(tài)均為m,則業(yè)務整體達到m階段,如果其中包含d或者a階段的子業(yè)務,那么業(yè)務整體的狀態(tài)可以為d或a。例如,對于m狀態(tài)的任務繼續(xù)處理時,wx監(jiān)控到流水任務數(shù)據(jù)都變?yōu)閙時,會啟動線程調(diào)用業(yè)務系統(tǒng)yx獲取所有的贖回記錄,進行數(shù)據(jù)合并處理,成功執(zhí)行后將流水狀態(tài)變更為g,準備生成贖回結果文件。wx執(zhí)行m狀態(tài)操作時,業(yè)務系統(tǒng)yx返回異?;蛘叱霈F(xiàn)網(wǎng)絡中斷,會將流水狀態(tài)轉變?yōu)閐。wx執(zhí)行m狀態(tài)操作時,業(yè)務系統(tǒng)yx處理贖回邏輯,當返回false時,會將流水狀態(tài)轉變?yōu)閍。例如,對于g狀態(tài)的任務繼續(xù)處理時,wx反查贖回支付業(yè)務單表的狀態(tài)為成功的狀態(tài),wx將贖回結果數(shù)據(jù)撈取生成結果文件,任務流水表中狀態(tài)由g更新為f狀態(tài)。wx執(zhí)行g狀態(tài)生成贖回結果文件時,業(yè)務系統(tǒng)yx返回異?;蛘叱霈F(xiàn)網(wǎng)絡中斷,會將流水狀態(tài)轉變?yōu)閐。wx執(zhí)行g狀態(tài)生成贖回結果文件時,業(yè)務系統(tǒng)yx處理贖回文件生成邏輯,當返回false時,會將流水狀態(tài)轉變?yōu)閍。經(jīng)過上述的處理,文件系統(tǒng)中處理的多個任務中,部分任務成功執(zhí)行, 狀態(tài)已經(jīng)更新為執(zhí)行成功標識,在下一次處理該任務時,根據(jù)該執(zhí)行成功標識繼續(xù)下一個階段的處理即可;而對于狀態(tài)為d或者a的任務,可以區(qū)別對待,其中的a狀態(tài)的任務,由于錯誤原因為文件本身錯誤,可以等待修正,暫時停止本次文件處理。對于狀態(tài)為d的任務,如果原因為網(wǎng)絡故障,那么在過段時間后,可能會出現(xiàn)網(wǎng)絡恢復,因此文件系統(tǒng)可以采用恢復機制,比如,每間隔一定時間,對于狀態(tài)為d,且最后處理時間在5分鐘之前的任務,文件系統(tǒng)wx可以再調(diào)用業(yè)務系統(tǒng)yx進行贖回,如果此時網(wǎng)絡已經(jīng)恢復,那么贖回將成功,直至將該任務成功執(zhí)行,將d更新為f。比如,假設對于上述例子中的理財產(chǎn)品的贖回業(yè)務,當執(zhí)行到對各個子業(yè)務執(zhí)行贖回邏輯時,如果部分子業(yè)務的執(zhí)行邏輯失敗,且原因是網(wǎng)絡異常,那么該子業(yè)務的狀態(tài)將設置為d。文件系統(tǒng)定期恢復時,將該子任務撈取,重新對該子任務進行一次贖回邏輯的執(zhí)行,如果網(wǎng)絡恢復正常,則可以成功將子任務的狀態(tài)由d更改為m。而如果是現(xiàn)有技術,文件系統(tǒng)需要重新執(zhí)行一次基礎文件的導入和解析,文件的拆分,再執(zhí)行子業(yè)務的贖回等,較為緩慢,采用本實施例的方法后,可以根據(jù)子任務的狀態(tài),直接執(zhí)行子任務的贖回即可,相當于是在m階段執(zhí)行時失敗,則重新執(zhí)行m階段即可,不用再執(zhí)行前面的p和s階段。當然,文件系統(tǒng)也可以記錄d狀態(tài)是由哪個狀態(tài)轉換所至,以可以從異常的階段開始繼續(xù)處理。采用本申請實施例的文件處理方法后,在文件系統(tǒng)中,即使存在由于網(wǎng)絡異常導致中斷的文件處理,文件系統(tǒng)也可以通過定期恢復機制,對于d狀態(tài)的任務,由發(fā)生異常的階段處繼續(xù)處理該任務,不用再重新從頭開始;并且,該定期恢復機制使得文件系統(tǒng)能夠自動定期執(zhí)行未完成任務的繼續(xù)執(zhí)行,促使該任務盡快的完成處理,從而使得文件處理的效率得到提高。也正是由于文件處理效率的提高,使得業(yè)務能夠盡快的完整執(zhí)行,用戶體驗更好。為了實現(xiàn)上述的文件處理方法,本申請還提供一種文件處理裝置,如圖4所示,該裝置可以包括:狀態(tài)記錄模塊41和文件處理模塊42。狀態(tài)記錄模塊41,用于當執(zhí)行文件處理過程中的一個文件處理階段發(fā)生 處理異常時,記錄與所述文件處理階段對應的處理異常狀態(tài)標識;文件處理模塊42,用于定期獲取發(fā)生處理異常的文件處理,并根據(jù)處理異常狀態(tài)標識,由對應的所述文件處理階段繼續(xù)文件處理過程。在一個例子中,所述處理異常,包括:出現(xiàn)網(wǎng)絡異常。在一個例子中,狀態(tài)記錄模塊41,用于在子業(yè)務的執(zhí)行過程中發(fā)生處理異常時,則對應記錄所述子業(yè)務的處理異常狀態(tài)標識,所述子業(yè)務是在執(zhí)行文件處理過程中,將所執(zhí)行的業(yè)務拆分成的多個子業(yè)務,所述文件處理階段為分別執(zhí)行各個子業(yè)務的階段。文件處理模塊42,用于在下次執(zhí)行本業(yè)務時,根據(jù)所述處理異常狀態(tài)標識,繼續(xù)所述子業(yè)務的執(zhí)行。在一個例子中,狀態(tài)記錄模塊41,還用于在執(zhí)行文件處理過程中的一個文件處理階段發(fā)生解析文件錯誤、或者參數(shù)校驗錯誤時,則記錄文件錯誤標識。文件處理模塊42,還用于根據(jù)所述文件錯誤標識,停止本次文件處理。在一個例子中,狀態(tài)記錄模塊41,還用于在文件處理過程中的一個文件處理階段執(zhí)行成功時,則記錄與所述文件處理階段對應的執(zhí)行成功標識。以上所述僅為本申請的較佳實施例而已,并不用以限制本申請,凡在本申請的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應包含在本申請保護的范圍之內(nèi)。當前第1頁12