欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

數(shù)據(jù)處理方法及裝置與流程

文檔序號:12123398閱讀:265來源:國知局
數(shù)據(jù)處理方法及裝置與流程

本發(fā)明涉及數(shù)據(jù)處理技術(shù),尤其涉及一種數(shù)據(jù)處理方法及裝置。



背景技術(shù):

在數(shù)據(jù)處理系統(tǒng)中,特別是在分布式、每天百億級的海量數(shù)據(jù)處理的情況下,數(shù)據(jù)一致性的問題成為了亟待解決的問題。

目前,數(shù)據(jù)一致性的方案可以基于數(shù)據(jù)庫的事務(wù)機(jī)制來實現(xiàn)。基于數(shù)據(jù)庫的事務(wù)機(jī)制,可以充分利用數(shù)據(jù)庫的事務(wù)能力,確保數(shù)據(jù)要么全部成功,要么全部不成功,從而有限解決數(shù)據(jù)庫類的數(shù)據(jù)一致性問題。

但是,基于數(shù)據(jù)庫的事務(wù)機(jī)制,只能處理單個數(shù)據(jù)庫的數(shù)據(jù)一致性問題,當(dāng)需要數(shù)據(jù)庫和文件系統(tǒng)的數(shù)據(jù)保持一致時,現(xiàn)有技術(shù)的方案難以保證數(shù)據(jù)庫和文件系統(tǒng)的數(shù)據(jù)一致性。



技術(shù)實現(xiàn)要素:

本發(fā)明提供一種數(shù)據(jù)處理方法及裝置,用以解決現(xiàn)有技術(shù)難以保持?jǐn)?shù)據(jù)庫和文件系統(tǒng)的數(shù)據(jù)一致性的問題。

本發(fā)明提供一種數(shù)據(jù)處理方法,包括:

讀取文件系統(tǒng)中的文件;

對讀取的文件進(jìn)行處理,同時生成回滾數(shù)據(jù),其中,在所述文件的處理過程中,若所述文件系統(tǒng)出現(xiàn)異常,則根據(jù)所述回滾數(shù)據(jù)對數(shù)據(jù)庫進(jìn)行回滾;

整個文件處理完成后,獲取最終處理結(jié)果,將所述最終處理結(jié)果存入所述數(shù)據(jù)庫;

在所述最終處理結(jié)果成功存入數(shù)據(jù)庫之后,將所述最終處理結(jié)果存入所述文件系統(tǒng)。

進(jìn)一步地,所述方法還包括:

在對所述文件中的每一步驟進(jìn)行處理后,判斷所述步驟的處理結(jié)果是否被其它文件需要;

若是,則將所述步驟的處理結(jié)果存入數(shù)據(jù)庫中;

相應(yīng)的,所述根據(jù)所述回滾數(shù)據(jù)對數(shù)據(jù)庫進(jìn)行回滾,包括:

判斷數(shù)據(jù)庫中當(dāng)前是否已存入所述文件的至少一個步驟的處理結(jié)果;

若有,則根據(jù)所述回滾數(shù)據(jù)對所述數(shù)據(jù)庫進(jìn)行回滾。

進(jìn)一步地,所述方法還包括:

在所述文件的處理過程中或者在將所述最終處理結(jié)果存入所述數(shù)據(jù)庫的過程中,若所述數(shù)據(jù)庫出現(xiàn)異常,則將所述文件置為未處理狀態(tài);

將所述回滾數(shù)據(jù)保存至專用文件系統(tǒng)中。

進(jìn)一步地,在所述最終處理結(jié)果成功存入數(shù)據(jù)庫之后,還包括:

若所述文件系統(tǒng)出現(xiàn)異常導(dǎo)致所述處理結(jié)果無法存入文件系統(tǒng),則將所述最終處理結(jié)果存入專用文件系統(tǒng)。

進(jìn)一步地,所述讀取文件系統(tǒng)中的文件,包括:

判斷所述專用文件系統(tǒng)中是否有最終處理結(jié)果和/或回滾數(shù)據(jù);

若有最終處理結(jié)果,則將所述最終處理結(jié)果存入所述文件系統(tǒng)中,并讀取所述最終處理結(jié)果對應(yīng)文件的下一文件;

若有回滾數(shù)據(jù),則根據(jù)所述回滾數(shù)據(jù)對數(shù)據(jù)庫進(jìn)行回滾,并讀取所述回滾數(shù)據(jù)對應(yīng)的文件;

若沒有最終處理結(jié)果和回滾數(shù)據(jù),則直接讀取所述文件系統(tǒng)中的未處理的文件。

本發(fā)明還提供一種數(shù)據(jù)處理裝置,包括:

讀取模塊,用于讀取文件系統(tǒng)中的文件;

處理模塊,用于對讀取的文件進(jìn)行處理,同時生成回滾數(shù)據(jù),其中,在所述文件的處理過程中,若所述文件系統(tǒng)出現(xiàn)異常,則根據(jù)所述回滾數(shù)據(jù)對數(shù)據(jù)庫進(jìn)行回滾;

第一存入模塊,用于在整個文件處理完成后,獲取最終處理結(jié)果,將所述最終處理結(jié)果存入所述數(shù)據(jù)庫;

第二存入模塊,用于在所述最終處理結(jié)果成功存入數(shù)據(jù)庫之后,將所述最終處理結(jié)果存入所述文件系統(tǒng)。

進(jìn)一步地,所述第一存入模塊還用于:

在對所述文件中的每一步驟進(jìn)行處理后,判斷所述步驟的處理結(jié)果是否被其它文件需要;若是,則將所述步驟的處理結(jié)果存入數(shù)據(jù)庫中;

相應(yīng)的,所述處理模塊,具體用于:

對讀取的文件進(jìn)行處理,同時生成回滾數(shù)據(jù),其中,在所述文件的處理過程中,若所述文件系統(tǒng)出現(xiàn)異常,則判斷數(shù)據(jù)庫中當(dāng)前是否已存入所述文件的至少一個步驟的處理結(jié)果,若有,則根據(jù)所述回滾數(shù)據(jù)對所述數(shù)據(jù)庫進(jìn)行回滾。

進(jìn)一步地,所述第二存入模塊還用于:

在所述文件的處理過程中或者在將所述最終處理結(jié)果存入所述數(shù)據(jù)庫的過程中,若所述數(shù)據(jù)庫出現(xiàn)異常,則將所述文件置為未處理狀態(tài);

將所述回滾數(shù)據(jù)保存至專用文件系統(tǒng)中。

進(jìn)一步地,所述第二存入模塊還用于:

在所述最終處理結(jié)果成功存入數(shù)據(jù)庫之后,若所述文件系統(tǒng)出現(xiàn)異常導(dǎo)致所述處理結(jié)果無法存入文件系統(tǒng),則將所述最終處理結(jié)果存入專用文件系統(tǒng)。

進(jìn)一步地,所述讀取模塊,具體用于:

判斷所述專用文件系統(tǒng)中是否有最終處理結(jié)果和/或回滾數(shù)據(jù);

若有最終處理結(jié)果,則將所述最終處理結(jié)果存入所述文件系統(tǒng)中,并讀取所述最終處理結(jié)果對應(yīng)文件的下一文件;

若有回滾數(shù)據(jù),則根據(jù)所述回滾數(shù)據(jù)對數(shù)據(jù)庫進(jìn)行回滾,并讀取所述回滾數(shù)據(jù)對應(yīng)的文件;

若沒有最終處理結(jié)果和回滾數(shù)據(jù),則直接讀取所述文件系統(tǒng)中的未處理的文件。

本發(fā)明提供的數(shù)據(jù)處理方法及裝置,通過讀取文件系統(tǒng)中的文件,對所述文件進(jìn)行處理,同時生成回滾數(shù)據(jù),在所述文件的處理過程中,若所述文件系統(tǒng)出現(xiàn)異常,則根據(jù)所述回滾數(shù)據(jù)對數(shù)據(jù)庫進(jìn)行回滾,若沒有出現(xiàn)異常,則將所述處理結(jié)果存入所述數(shù)據(jù)庫,并在存入數(shù)據(jù)庫成功之后,將所述最終處理結(jié)果存入所述文件系統(tǒng),能夠有效保證數(shù)據(jù)庫和文件系統(tǒng)的一致性。

附圖說明

圖1為本發(fā)明實施例一提供的數(shù)據(jù)處理方法的流程圖;

圖2為本發(fā)明實施例二提供的數(shù)據(jù)處理方法的流程圖;

圖3為本發(fā)明實施例三提供的數(shù)據(jù)處理裝置的結(jié)構(gòu)框圖。

具體實施方式

為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。

在本申請實施例中使用的術(shù)語是僅僅出于描述特定實施例的目的,而非旨在限制本發(fā)明。在本申請實施例和所附權(quán)利要求書中所使用的單數(shù)形式的“一種”、“所述”和“該”也旨在包括多數(shù)形式,除非上下文清楚地表示其他含義。

應(yīng)當(dāng)理解,本文中使用的術(shù)語“和/或”僅僅是一種描述關(guān)聯(lián)對象的關(guān)聯(lián)關(guān)系,表示可以存在三種關(guān)系,例如,A和/或B,可以表示:單獨(dú)存在A,同時存在A和B,單獨(dú)存在B這三種情況。另外,本文中字符“/”,一般表示前后關(guān)聯(lián)對象是一種“或”的關(guān)系。

取決于語境,如在此所使用的詞語“如果”、“若”可以被解釋成為“在……時”或“當(dāng)……時”或“響應(yīng)于確定”或“響應(yīng)于檢測”。類似地,取決于語境,短語“如果確定”或“如果檢測(陳述的條件或事件)”可以被解釋成為“當(dāng)確定時”或“響應(yīng)于確定”或“當(dāng)檢測(陳述的條件或事件)時”或“響應(yīng)于檢測(陳述的條件或事件)”。

還需要說明的是,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的商品或者系統(tǒng)不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種商品或者系統(tǒng)所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的商品或者系統(tǒng)中還存在另外的相同要素。

實施例一

本發(fā)明實施例一提供一種數(shù)據(jù)處理方法。圖1為本發(fā)明實施例一提供的數(shù)據(jù)處理方法的流程圖。如圖1所示,本實施例中的方法,可以包括:

步驟101、讀取文件系統(tǒng)中的文件。

本實施例中的數(shù)據(jù)處理方法,可以應(yīng)用于分布式數(shù)據(jù)系統(tǒng)中,尤其是需要數(shù)據(jù)庫和文件系統(tǒng)的數(shù)據(jù)保持一致的場景。

文件系統(tǒng)把數(shù)據(jù)組織成相互獨(dú)立的文件,實現(xiàn)了記錄內(nèi)的結(jié)構(gòu)性,方便用戶操作,但整體無結(jié)構(gòu),數(shù)據(jù)冗余度大,浪費(fèi)存儲空間。而數(shù)據(jù)庫實現(xiàn)整體數(shù)據(jù)的結(jié)構(gòu)化,數(shù)據(jù)可以被多個用戶、多個應(yīng)用共享使用,有效減少了數(shù)據(jù)冗余。

所述文件系統(tǒng)中可以包括多個文件,對于每一個文件,都可以利用本實施例中步驟101至步驟104提供的方法對該文件進(jìn)行處理。本步驟中,當(dāng)需要對文件進(jìn)行處理時,可以首先讀取該文件。

步驟102、對讀取的文件進(jìn)行處理,生成回滾數(shù)據(jù),其中,在所述文件的處理過程中,若所述文件系統(tǒng)出現(xiàn)異常,則根據(jù)所述回滾數(shù)據(jù)對數(shù)據(jù)庫進(jìn)行回滾。

對所述文件進(jìn)行處理,可以包括:按照預(yù)定規(guī)則對所述文件的各個步驟進(jìn)行處理,獲取各個步驟對應(yīng)的處理結(jié)果和回滾數(shù)據(jù)。

具體地,所述文件中可以包括多個步驟,每個步驟可以用一行數(shù)據(jù)來表示。因此,對所述文件中的各個步驟進(jìn)行處理,也可以說是:對所述文件中的各行數(shù)據(jù)進(jìn)行處理。

例如,本實施例中的方法可以應(yīng)用在計費(fèi)系統(tǒng)中,則所述文件系統(tǒng)可以為話單系統(tǒng),所述文件系統(tǒng)中的文件可以為話單文件,所述話單文件中可以包括多行數(shù)據(jù),每一行數(shù)據(jù)可以用于表示:生成或讀取上網(wǎng)記錄、通話記錄、短信記錄、賬單,或類似操作。

在對所述文件系統(tǒng)的一個步驟進(jìn)行處理后,可以獲取該步驟對應(yīng)的處理結(jié)果和回滾數(shù)據(jù)。對于某些步驟而言,對應(yīng)的處理結(jié)果可能為空。

在所述文件的處理過程中,若所述文件系統(tǒng)出現(xiàn)異常,則根據(jù)所述回滾數(shù)據(jù)對數(shù)據(jù)庫進(jìn)行回滾。生成回滾數(shù)據(jù)和根據(jù)回滾數(shù)據(jù)對數(shù)據(jù)庫進(jìn)行回滾的方法均屬于現(xiàn)有技術(shù),本實施例中不再贅述。

在對數(shù)據(jù)庫進(jìn)行回滾之后,可以停止對文件進(jìn)行處理,并將文件置為未處理狀態(tài),待數(shù)據(jù)庫正常之后、或者下次對文件系統(tǒng)進(jìn)行操作時,重新處理該文件。

進(jìn)一步地,本實施例中的方法還包括:在對所述文件中的每一步驟進(jìn)行處理后,判斷所述步驟的處理結(jié)果是否被其它文件需要,若是,則將所述步驟的處理結(jié)果存入數(shù)據(jù)庫中。

例如,A文件中的第L行數(shù)據(jù)對應(yīng)的處理結(jié)果為話費(fèi)記錄,而另一文件B在處理時需要用到該話費(fèi)記錄,則在對A文件中的第L行數(shù)據(jù)處理完成后,將第L行數(shù)據(jù)對應(yīng)的處理結(jié)果存入數(shù)據(jù)庫中。

若某一步驟的處理結(jié)果沒有其它文件會用到,則不存入數(shù)據(jù)庫中。

相應(yīng)的,所述根據(jù)所述回滾數(shù)據(jù)對數(shù)據(jù)庫進(jìn)行回滾,可以包括:判斷數(shù)據(jù)庫中當(dāng)前是否已存入所述文件中的至少一個步驟的處理結(jié)果;若有,則根據(jù)所述回滾數(shù)據(jù)對所述數(shù)據(jù)庫進(jìn)行回滾。

如果當(dāng)前數(shù)據(jù)庫中沒有存入所述文件的任何一個步驟的處理結(jié)果,則不需要進(jìn)行回滾操作,能夠節(jié)約操作時間,有效提高處理效率。

步驟103、整個文件處理完成后,獲取最終處理結(jié)果,將所述最終處理結(jié)果存入所述數(shù)據(jù)庫。

步驟104、在所述最終處理結(jié)果成功存入數(shù)據(jù)庫之后,將所述最終處理結(jié)果存入所述文件系統(tǒng)中。

在將文件的最后一個步驟處理完后,整個文件就算是處理完成了,可以將所述文件置為已處理狀態(tài)。最后一個步驟對應(yīng)的處理結(jié)果可以作為所述最終處理結(jié)果,將所述最終處理結(jié)果可以存入數(shù)據(jù)庫中,在存入數(shù)據(jù)庫成功之后,再將所述處理結(jié)果存入文件系統(tǒng)中,這樣就實現(xiàn)了文件系統(tǒng)和數(shù)據(jù)庫的一致性。

具體地,所述最終處理結(jié)果可以有多種存儲形式,例如,可以為明細(xì)形式的最終處理結(jié)果,也可以為匯總形式的最終處理結(jié)果。以話費(fèi)系統(tǒng)為例,明細(xì)形式的最終處理結(jié)果可以為“xx賬戶xx月話費(fèi):xx日xx元,xx日xx元,……”,匯總形式的最終處理結(jié)果可以為“xx賬戶xx月話費(fèi):共計xx元”,兩者在實質(zhì)上是等同的。

存入文件系統(tǒng)的最終處理結(jié)果和存入數(shù)據(jù)庫中的最終處理結(jié)果的存儲形式可以一樣,也可以不一樣,例如,可以將最終處理結(jié)果以明細(xì)形式存入數(shù)據(jù)庫中,以匯總形式存入文件系統(tǒng)中。

在實際應(yīng)用中,當(dāng)需要對文件系統(tǒng)進(jìn)行處理時,可以首先初始化數(shù)據(jù)庫連接,初始化成功后,選擇一個未處理的文件,然后讀取文件的每個步驟即每行數(shù)據(jù),根據(jù)規(guī)則進(jìn)行計算,獲取處理結(jié)果,處理完成后,將最終處理數(shù)據(jù)更新到數(shù)據(jù)庫中,最后將最終結(jié)果數(shù)據(jù)寫入文件系統(tǒng),若在處理過程中若文件系統(tǒng)出現(xiàn)異常,可以根據(jù)回滾數(shù)據(jù)對數(shù)據(jù)庫進(jìn)行回滾操作,避免文件系統(tǒng)與數(shù)據(jù)庫不一致。

本實施例提供的數(shù)據(jù)處理方法,通過讀取文件系統(tǒng)中的文件,對所述文件進(jìn)行處理,同時生成回滾數(shù)據(jù),在所述文件的處理過程中,若所述文件系統(tǒng)出現(xiàn)異常,則根據(jù)所述回滾數(shù)據(jù)對數(shù)據(jù)庫進(jìn)行回滾,若沒有出現(xiàn)異常,則將所述處理結(jié)果存入所述數(shù)據(jù)庫,并在存入數(shù)據(jù)庫成功之后,將所述最終處理結(jié)果存入所述文件系統(tǒng),能夠有效保證數(shù)據(jù)庫和文件系統(tǒng)的一致性。

實施例二

本發(fā)明實施例二提供一種數(shù)據(jù)處理方法。本實施例是在實施例一提供的技術(shù)方案的基礎(chǔ)上,針對不同時期的數(shù)據(jù)庫異常和文件系統(tǒng)異常作出了相應(yīng)處理。

圖2為本發(fā)明實施例二提供的數(shù)據(jù)處理方法的流程圖。如圖2所示,本實施例中的方法,可以包括:

步驟201、判斷所述專用文件系統(tǒng)中是否有最終處理結(jié)果和/或回滾數(shù)據(jù),并根據(jù)判斷結(jié)果讀取文件系統(tǒng)中的相應(yīng)文件。

具體地,所述根據(jù)判斷結(jié)果讀取文件系統(tǒng)中的相應(yīng)文件,可以包括:若有最終處理結(jié)果,則將所述最終處理結(jié)果存入所述文件系統(tǒng),并讀取所述最終處理結(jié)果對應(yīng)文件的下一文件;若有回滾數(shù)據(jù),則根據(jù)所述回滾數(shù)據(jù)對數(shù)據(jù)庫進(jìn)行回滾,并讀取所述回滾數(shù)據(jù)對應(yīng)的文件;若沒有最終處理結(jié)果和回滾數(shù)據(jù),則直接讀取文件系統(tǒng)中的未處理的文件。

本步驟是對實施例一中的步驟101進(jìn)行的擴(kuò)展,根據(jù)專用文件系統(tǒng)中存儲的數(shù)據(jù)情況來對文件系統(tǒng)中的文件進(jìn)行讀取。所述專用文件系統(tǒng)是一塊備用區(qū)域,在文件處理過程中,若出現(xiàn)數(shù)據(jù)庫異常或者文件系統(tǒng)異常,可以將相應(yīng)的回滾數(shù)據(jù)或者最終處理結(jié)果存入所述專用文件系統(tǒng),供下次處理時使用。

在數(shù)據(jù)庫或文件系統(tǒng)恢復(fù)正常后,或者,在重新啟動應(yīng)用后,可以首先判斷專用文件系統(tǒng)中是否有最終處理結(jié)果和/或回滾數(shù)據(jù),并根據(jù)判斷結(jié)果讀取文件系統(tǒng)中的相應(yīng)文件。

例如,所述專用文件系統(tǒng)中有文件A的最終處理結(jié)果,則可以將所述最終處理結(jié)果存入文件系統(tǒng),并讀取文件A的下一文件。若所述專用文件系統(tǒng)中有文件A的回滾數(shù)據(jù),則可以根據(jù)所述回滾數(shù)據(jù)對數(shù)據(jù)庫進(jìn)行回滾并讀取文件A,以便對文件A進(jìn)行后續(xù)處理。若所述專用文件系統(tǒng)中既沒有回滾數(shù)據(jù)也沒有最終處理結(jié)果,則根據(jù)預(yù)定順序讀取文件系統(tǒng)中的未處理的文件。

在將所述專用文件系統(tǒng)中的最終處理結(jié)果存入文件系統(tǒng)中,或者根據(jù)所述專用文件系統(tǒng)中的回滾數(shù)據(jù)對數(shù)據(jù)庫進(jìn)行回滾之后,可以刪除所述最終處理結(jié)果和回滾數(shù)據(jù),或者將所述最終處理結(jié)果和回滾數(shù)據(jù)標(biāo)記為已處理,下次重新啟動應(yīng)用后不再對所述最終處理結(jié)果和回滾數(shù)據(jù)進(jìn)行處理。

步驟202、對讀取的文件進(jìn)行處理,同時生成回滾數(shù)據(jù),其中,在所述文件的處理過程中,若所述數(shù)據(jù)庫出現(xiàn)異常,則將所述文件置為未處理狀態(tài),并將所述回滾數(shù)據(jù)保存至專用文件系統(tǒng)的回滾文件中。

在讀取了文件系統(tǒng)中的文件之后,可以對所述文件進(jìn)行處理。在所述文件的處理過程中,若所述文件系統(tǒng)出現(xiàn)異常,則根據(jù)所述回滾數(shù)據(jù)對數(shù)據(jù)庫進(jìn)行回滾。對文件進(jìn)行處理的方法以及過程中文件系統(tǒng)出現(xiàn)異常的處理辦法與實施例一類似,此處不再贅述。

在所述文件的處理過程中,若所述數(shù)據(jù)庫出現(xiàn)異常,則將所述文件置為未處理狀態(tài),并將所述回滾數(shù)據(jù)保存至專用文件系統(tǒng)中,等待下次重新啟動后,根據(jù)所述回滾數(shù)據(jù)對所述數(shù)據(jù)庫進(jìn)行回滾。

步驟203、整個文件處理完成后,獲取最終處理結(jié)果,將所述最終處理結(jié)果存入所述數(shù)據(jù)庫。

在將所述最終處理結(jié)果存入所述數(shù)據(jù)庫的過程中,若所述數(shù)據(jù)庫出現(xiàn)異常,則將所述文件置為未處理狀態(tài),并將所述回滾數(shù)據(jù)保存至專用文件系統(tǒng)中,等待下次重新啟動后,根據(jù)所述回滾數(shù)據(jù)對所述數(shù)據(jù)庫進(jìn)行回滾。

步驟204、在所述最終處理結(jié)果成功存入數(shù)據(jù)庫之后,將所述最終處理結(jié)果存入所述文件系統(tǒng)。

若所述文件系統(tǒng)出現(xiàn)異常導(dǎo)致所述最終處理結(jié)果無法存入文件系統(tǒng),則將所述最終處理結(jié)果存入專用文件系統(tǒng)。

本實施例提供的數(shù)據(jù)處理方法,通過在數(shù)據(jù)庫異常和文件系統(tǒng)異常時,將相應(yīng)的回滾數(shù)據(jù)或者最終處理結(jié)果保存至專用文件系統(tǒng)中,并在重新啟動后根據(jù)專用文件系統(tǒng)中的回滾數(shù)據(jù)和最終處理結(jié)果對數(shù)據(jù)庫或文件系統(tǒng)進(jìn)行處理,保證在數(shù)據(jù)庫異常和文件異常時,數(shù)據(jù)庫和文件系統(tǒng)都能保證數(shù)據(jù)的一致性,且有效節(jié)約程序,避免了冗余操作。

在上述實施例提供的技術(shù)方案的基礎(chǔ)上,在文件處理過程中,無論是數(shù)據(jù)庫出現(xiàn)異常,還是文件系統(tǒng)出現(xiàn)異常,都可以首先停止對文件進(jìn)行處理,然后按照上述方法進(jìn)行回滾或者存入專用文件系統(tǒng)的操作,等待下次重新啟動后再繼續(xù)處理。

本發(fā)明中,對數(shù)據(jù)庫異常和對文件系統(tǒng)異常的判斷,可以通過捕獲返回值或捕獲錯誤響應(yīng)來實現(xiàn),其具體實現(xiàn)原理屬于現(xiàn)有技術(shù),此處不再贅述。

實施例三

本發(fā)明實施例三提供一種數(shù)據(jù)處理裝置。圖3為本發(fā)明實施例三提供的數(shù)據(jù)處理裝置的結(jié)構(gòu)框圖。如圖3所示,本實施例中的數(shù)據(jù)處理裝置,可以包括:

讀取模塊301,用于讀取文件系統(tǒng)中的文件;

處理模塊302,用于對讀取的文件進(jìn)行處理,同時生成回滾數(shù)據(jù),其中,在所述文件的處理過程中,若所述文件系統(tǒng)出現(xiàn)異常,則根據(jù)所述回滾數(shù)據(jù)對數(shù)據(jù)庫進(jìn)行回滾;

第一存入模塊303,用于在整個文件處理完成后,獲取最終處理結(jié)果,將所述最終處理結(jié)果存入所述數(shù)據(jù)庫;

第二存入模塊304,用于在所述最終處理結(jié)果成功存入數(shù)據(jù)庫之后,將所述最終處理結(jié)果存入所述文件系統(tǒng)。

本實施例中的數(shù)據(jù)處理裝置,可以用于執(zhí)行實施例一中的數(shù)據(jù)處理方法,其具體實現(xiàn)原理與實施例一類似,此處不再贅述。

本實施例提供的數(shù)據(jù)處理裝置,通過讀取文件系統(tǒng)中的文件,對所述文件進(jìn)行處理,同時生成回滾數(shù)據(jù),在所述文件的處理過程中,若所述文件系統(tǒng)出現(xiàn)異常,則根據(jù)所述回滾數(shù)據(jù)對數(shù)據(jù)庫進(jìn)行回滾,若沒有出現(xiàn)異常,則將所述處理結(jié)果存入所述數(shù)據(jù)庫,并在存入數(shù)據(jù)庫成功之后,將所述最終處理結(jié)果存入文件系統(tǒng),能夠有效保證數(shù)據(jù)庫和文件系統(tǒng)的一致性。

進(jìn)一步地,所述第一存入模塊303還用于:在對所述文件中的每一步驟進(jìn)行處理后,判斷所述步驟的處理結(jié)果是否被其它文件需要;若是,則將所述步驟的處理結(jié)果存入數(shù)據(jù)庫中;

相應(yīng)的,所述處理模塊302,具體用于:對讀取的文件進(jìn)行處理,同時生成回滾數(shù)據(jù),其中,在所述文件的處理過程中,若所述文件系統(tǒng)出現(xiàn)異常,則判斷數(shù)據(jù)庫中當(dāng)前是否已存入所述文件的至少一個步驟的處理結(jié)果,若有,則根據(jù)所述回滾數(shù)據(jù)對所述數(shù)據(jù)庫進(jìn)行回滾。

進(jìn)一步地,所述第二存入模,304,還用于:

在所述文件的處理過程中或者在將所述最終處理結(jié)果存入所述數(shù)據(jù)庫的過程中,若所述數(shù)據(jù)庫出現(xiàn)異常,則將所述文件置為未處理狀態(tài);

將所述回滾數(shù)據(jù)保存至專用文件系統(tǒng)中。

進(jìn)一步地,所述第二存入模塊304,還用于:

在所述最終處理結(jié)果成功存入數(shù)據(jù)庫之后,若所述文件系統(tǒng)出現(xiàn)異常導(dǎo)致所述處理結(jié)果無法存入文件系統(tǒng),則將所述最終處理結(jié)果存入專用文件系統(tǒng)。

進(jìn)一步地,所述讀取模塊301,具體用于:

判斷所述專用文件系統(tǒng)中是否有最終處理結(jié)果和/或回滾數(shù)據(jù);

若有最終處理結(jié)果,則將所述最終處理結(jié)果存入所述文件系統(tǒng)中,并讀取所述最終處理結(jié)果對應(yīng)文件的下一文件;

若有回滾數(shù)據(jù),則根據(jù)所述回滾數(shù)據(jù)對數(shù)據(jù)庫進(jìn)行回滾,并讀取所述回滾數(shù)據(jù)對應(yīng)的文件;

若沒有最終處理結(jié)果和回滾數(shù)據(jù),則直接讀取所述文件系統(tǒng)中的未處理的文件。

最后應(yīng)說明的是:以上各實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述各實施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的范圍。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
邓州市| 海晏县| 大姚县| 巴青县| 财经| 南木林县| 吉林省| 阳高县| 大田县| 库尔勒市| 伽师县| 尖扎县| 随州市| 宜丰县| 大田县| 财经| 将乐县| 巫山县| 涡阳县| 宜州市| 宝鸡市| 靖远县| 永宁县| 扎鲁特旗| 铜陵市| 大英县| 仪陇县| 虎林市| 长岭县| 汪清县| 佛学| 桂平市| 锡林郭勒盟| 都安| 蕉岭县| 沁源县| 华池县| 古蔺县| 界首市| 禄丰县| 辽宁省|