一種數據處理方法和系統的制作方法
【專利摘要】本發明公開了一種數據處理方法和系統,包括:數據寫入階段:接收客戶端發送來的數據信息;將所述數據信息持久化到數據庫;將所述數據信息中的待處理數據寫入Redis緩存;數據處理階段:從所述Redis緩存獲取所述待處理數據并進行處理,將處理后的結果數據發送到消息隊列;從所述消息隊列中獲取所述結果數據,并將其持久化到所述數據庫。本發明采用Redis緩存保存待處理數據,實現了Redis緩存中的待處理數據的并發搶占和處理,處理后的結果數據通過消息隊列實現了串行化的方式持久化到數據庫中。本發明增強了數據的并發性處理,給客戶帶來良好的體驗,避免了高并發情況下給數據庫帶來的瓶頸問題,避免數據庫死鎖的問題,確保了數據的一致性和完整性。
【專利說明】一種數據處理方法和系統
【技術領域】
[0001]本發明涉及計算機【技術領域】,特別涉及一種高并發性能的數據處理方法和系統。【背景技術】
[0002]售后服務是商業行為中非常重要的環節。無論是傳統零售商,還是電商企業,都必須建立一套完善的售后服務體系,才能保障銷售產品的品質和客戶的合法權益,并且售后服務質量的好壞還直接影響到客戶的購物體驗。
[0003]對于電商企業來講,客戶在電商網站購買商品,收貨后如果發現存在質量、錯誤購買等問題,可以直接在該電商網站提交相關的售后服務申請,售后服務申請數據通過網絡發送到該電商的售后服務系統中。電商網站的售后服務專員直接在售后服務系統中審核并處理該售后服務申請數據。
[0004]在目前的電商企業中,由于售后服務專員的考核指標主要通過工作量進行衡量,進而為了能夠提高其自身的考核指標,售后服務專員會在售后服務系統中爭搶售后服務申請數據進行審核和處理。在售后服務系統中,售后服務申請數據的領取屬于一種搶占模式(類似12306網站的搶票模式),這就要求售后服務系統的領取環節必須支持高并發處理。
[0005]在現有技術中,對于OLTP (On-Line Transaction Processing,聯機事務處理系統,也稱為面向交易的處理系統)類應用系統,通常都采用全流程實時數據庫交互的模式進行數據處理,如圖1所示,其交互過程包括如下步驟:
[0006]第I步、客戶端向Web服務端發起請求,例如售后服務申請單領取請求;
[0007]第2步、Web服務端接收到客戶端發起的請求,并和數據庫建立連接,向數據庫發起數據庫更新事務請求;
[0008]第3步、數據庫接收到數據庫更新事務請求后,執行事務內的更新動作以更新對應的數據記錄,比如售后服務申請單的領取狀態、領取數量等,更新成功之后事務結束,同時返回給Web服務端事務執行成功標識;
[0009]第4步、Web服務端接收到數據庫返回的事務成功標識后,將數據處理結果返回給客戶端,比如售后服務申請單最終領取成功數量等信息;
[0010]第5步、客戶端接收到服務端返回的信息后提示用戶領取成功信息。
[0011]現有技術中所采用的上述全流程實時數據庫交互模式的缺陷表現在如下幾個方面:
[0012]I)因為全流程實時和數據庫交互,進而對數據庫形成強依賴。數據庫的事務并發性能(TPS)有限,因此可導致OLTP類應用系統的并發性能存在瓶頸風險。而實踐也表明無論如何進行查詢SQL(Structured Query Language,結構化查詢語言)、數據庫配置等優化,都很難滿足上述搶占式應用場景的高并發需求;
[0013]2)在高并發的應用場景下,現有技術方案容易發生數據庫死鎖,如果死鎖處理不好的話容易導致數據庫崩潰,進而導致系統無法使用等嚴重后果;
[0014]3 )并發性能差,用戶體驗不好,往往在客戶端發起領取請求后,要數秒之后才能返 回結果。
【發明內容】
[0015]有鑒于此,本發明提供一種高并發數據處理方法和系統,以適用于解決系統中類似搶占模式的高并發應用。
[0016]本發明的技術方案是這樣實現的:
[0017]一種數據處理方法,包括數據寫入階段和數據處理階段,其中:
[0018]所述數據寫入階段包括:
[0019]接收客戶端發送來的數據信息;
[0020]創建數據庫連接,并開啟數據庫事務,將所述數據信息持久化到數據庫;
[0021]將所述數據信息中的待處理數據寫入Redis緩存,之后提交數據庫事務;
[0022]所述數據處理階段包括:
[0023]從所述Redis緩存獲取所述待處理數據,并對所述待處理數據進行處理,將處理后的結果數據發送到消息隊列;
[0024]監聽所述消息隊列,并從所述消息隊列中獲取所述結果數據,并將所接收的結果數據持久化到所述數據庫;
[0025]刪除所述Redis緩存中的所述待處理數據。
[0026]進一步,在所述數據寫入階段中:
[0027]若所述數據信息持久化到數據庫失敗,則回滾所述數據庫事務,并斷開所述數據庫連接。
[0028]進一步,在所述數據處理階段中:
[0029]若所述結果數據持久化到所述數據庫失敗,則回滾所述數據庫事務,且不刪除所述Redis緩存中的所述待處理數據。
[0030]進一步,所述Redis緩存中具有存儲隊列List,以及與所述List對應的已完成隊列 Complete List ;
[0031]在所述數據寫入階段中:
[0032]將所述待處理數據寫入Redis緩存時,是將所述待處理數據寫入所述存儲隊列List 中;
[0033]在所述數據處理階段中:
[0034]從所述Redis緩存獲取所述待處理數據,并對所述待處理數據進行處理時,是從所述存儲隊列List中取出所述待處理數據以進行處理,將處理后的結果數據轉存到與所述List相對應的Complete List中。
[0035]進一步,從所述存儲隊列List中取出所述待處理數據以進行處理,將處理后的結果數據轉存到與所述List相對應的Complete List中的過程中,采用setnx原子操作對所述待處理數據進行加鎖處理。
[0036]進一步,在所述數據寫入階段中,所述將所述數據信息持久化到數據庫與所述將所述數據信息中的待處理數據寫入Redis緩存,在同一個事務邊界中完成。
[0037]進一步,所述數據信息為售后服務申請單數據。
[0038]一種數據處理系統,包括:[0039]數據庫,用于進行所述數據信息和處理后的結果數據的存儲;
[0040]Redis緩存,用于保存所述數據信息中的待處理數據;
[0041]第一服務模塊,用于接收客戶端發送來的數據信息,創建數據庫連接,并開啟數據庫事務,將所述數據信息持久化到所述數據庫,將所述數據信息中的待處理數據寫入所述Redis緩存,之后提交數據庫事務;
[0042]數據處理模塊,用于從所述Redis緩存獲取所述待處理數據,并對所述待處理數據進行處理,將處理后的結果數據發送到消息隊列;
[0043]第二服務模塊,用于監聽所述消息隊列,并從所述消息隊列中獲取所述結果數據,并將所接收的結果數據持久化到所述數據庫,之后刪除所述Redis緩存中的所述待處理數據。
[0044]進一步,所述Redis緩存中具有存儲隊列List,以及與所述List對應的已完成隊列 Complete List ;
[0045]所述第一服務模塊將所述待處理數據寫入Redis緩存時,是將所述待處理數據寫入所述存儲隊列List中;
[0046]所述數據處理模塊從所述Redis緩存獲取所述待處理數據,并對所述待處理數據進行處理時,是從所述存儲隊列List中取出所述待處理數據以進行處理,將處理后的結果數據轉存到與所述List相對應的Complete List中。
[0047]進一步,所述數據信息為售后服務申請單數據。
[0048]從上述方案可以看出,本發明的數據處理方法和系統,采用Redis緩存保存數據信息中的待處理數據,利用Redis緩存對高并發訪問的良好支持,實現了 Redis緩存中的待處理數據的并發搶占和處理,將處理后的結果數據發送到消息隊列,并通過消息隊列以串行化的方式持久化到數據庫中,在保證數據一致性和完整性的情況下實現了結果數據在數據庫中的存儲。對于整個的數據處理過程來說,一方面增強了數據的并發性處理,能夠較快的完成數據的處理,不需要客戶較長時間的等待,給客戶帶來良好的體驗,另一方面,也避免了高并發情況下給數據庫帶來的瓶頸問題,避免數據庫死鎖的問題,也確保了數據的一致性和完整性。
【專利附圖】
【附圖說明】
[0049]圖1為現有的全流程實時數據庫交互模式進行數據處理的示意圖;
[0050]圖2為本發明的數據處理方法的流程示意圖;
[0051]圖3為本發明的數據處理方法的實施例意圖;
[0052]圖4為本發明中Redis緩存中的數據存儲結構示意圖;
[0053]圖5為本發明的數據處理系統的實施例結構示意圖。
【具體實施方式】
[0054]為了使本發明的目的、技術方案及優點更加清楚明白,以下參照附圖并舉實施例,對本發明作進一步詳細說明。
[0055]如圖2所示,本發明提供的數據處理方法包括數據寫入階段和數據處理階段,其中:[0056]所述數據寫入階段包括:
[0057]步驟1、接收客戶端發送來的數據信息;
[0058]步驟2、創建數據庫連接,并開啟數據庫事務,將所述數據信息持久化到數據庫;
[0059]步驟3、將所述數據信息中的待處理數據寫入Redis緩存,之后提交數據庫事務;
[0060]所述數據處理階段包括:
[0061]步驟4、從所述Redis緩存獲取所述待處理數據,并對所述待處理數據進行處理,將處理后的結果數據發送到消息隊列(MQ);
[0062]步驟5、監聽所述消息隊列,并從所述消息隊列中獲取所述結果數據,并將所接收的結果數據持久化到所述數據庫;
[0063]步驟6、刪除所述Redis緩存中的所述待處理數據。
[0064]在所述數據寫入階段中,若步驟2中所述數據信息持久化到數據庫失敗,則回滾所述數據庫事務,并斷開所述數據庫連接。此處的數據庫回滾指的是該處整個數據持久化事務回滾,回滾的事務不會有任何數據持久化到數據庫。
[0065]在所述數據寫入階段中,步驟2的將所述數據信息持久化到數據庫與步驟3的將所述數據信息中的待處理數據寫入Redis緩存,是在同一個事務邊界中完成的,進而保證存儲到數據庫中和存儲到Redis緩存中的數據保持一致。
[0066]在所述數據處理階段中,若步驟5中所述結果數據持久化到所述數據庫失敗,則回滾所述數據庫事務,且不刪除所述Redis緩存中的所述待處理數據。
[0067]本發明中,所采用的Redis是一個key-value存儲系統,支持多種存儲類型,其中包括List (存儲隊列)類型,并且支持多種操作,例如push/pop、add/remove以及取交集并集和差集等,這些操作都是原子性的。并且,在此基礎上,redis支持了各種不同方式的排序。Redis的數據都是緩存在內存中的。關于Redis,為本領域已有技術,不在此贅述。
[0068]本發明所述方法的實施例中,Redis緩存中具有至少I個List(存儲隊列),以及與所述List對應的Complete List (已完成隊列)。步驟2中,將所述待處理數據寫入Redis緩存時,是將所述待處理數據寫入所述存儲隊列List中;步驟4中,從所述Redis緩存獲取所述待處理數據,并對所述待處理數據進行處理時,是從所述存儲隊列List中取出所述待處理數據以進行處理,將處理后的結果數據轉存到與所述List相對應的Complete List中。從所述存儲隊列List中取出所述待處理數據以進行處理,將處理后的結果數據轉存到與所述List相對應的Complete List中的過程中,采用setnx原子操作對所述待處理數據進行加鎖處理,進而保證高并發下的線程安全。
[0069]本發明公開的數據處理方法,適用于高并發的數據處理,例如搶占模式的售后服務申請數據的處理,進而作為一個具體實施例,本發明的上述數據處理方法中,所述待處理數據為售后服務申請單數據。
[0070]以下以電商的網上售后服務申請單的數據處理過程為例,并結合圖3對本發明的數據處理方法進行具體說明,該實施例包括以下過程。
[0071]步驟a、電商接收客戶端發送來的售后服務申請單數據,之后執行步驟b。
[0072]在本步驟a之前,客戶從電商購買所需要的商品,當發現其所購買的商品出現質量問題或者需要相關的售后服務時,通過客戶端向電商發送售后服務申請單,以申請相應的售后服務。其中,客戶端例如客戶電腦,或者客戶電腦中所安裝的相應軟件,或者客戶電腦所登錄的電商網頁,或者客戶移動終端所安裝的相應軟件,或者客戶移動終端所登陸的點上網頁等。
[0073]步驟b、創建數據庫連接,并開啟數據庫事務,將售后服務申請單數據持久化到數據庫,之后執行步驟C。
[0074]其中,數據庫為事先已經創建好的數據庫,該數據庫用于存儲售后服務申請單數據以及與所述售后服務申請單數據相對應的經過電商客服處理后的售后服務數據等。本步驟b中,將售后服務申請單數據持久化到數據庫中,目的是為了在電商網站完成服務申請單數據的存儲。
[0075]步驟C、判斷將售后服務申請單數據持久化到數據庫是否成功,如果成功則執行步驟d,否則執行步驟e。
[0076]在網站運營的過程中,可能因為所存在的各種問題,例如傳輸數據丟失,而造成的數據持久化失敗的可能,設置本步驟c的目的是當出現失敗的情況時,能夠進行相應的處理,以防止無法完成售后服務申請單的處理的可能。
[0077]步驟d、將所述售后服務申請單數據中的待處理數據寫入Redis緩存,之后提交數據庫事務,之后執行步驟f。
[0078]本步驟d中,售后服務申請單數據中的待處理數據是指,進行該售后服務申請的相應處理是所需要用到的數據。對于售后服務申請單來說,其中包含了大量的信息,這些信息在數據庫中的存儲例如分為多個字段進行存儲,字段內容例如相關的商品信息、提交日期信息、客戶在申請單中填寫的描述信息、用于標識售后服務申請的處理進展的信息等。在電商客服針對該售后服務申請進行相應的處理時,并不需要該售后服務申請單數據中的所有信息,僅需要其中一部分信息即可完成相應的售后服務流程,因此不必要將所有的售后服務申請單數據全部寫入Redis緩存,進而節省了售后服務申請單數據所占用的Redis緩存空間,能夠使Redis緩存同時存儲更多的其他售后服務申請單的相關數據。
[0079]步驟d中,在所述的提交數據庫事務中的事務是指數據寫入的事務,本領域中,凡是持久化到數據庫的業務邏輯都需要依賴于數據庫自身的事務來確保數據的一致性和完整性,數據寫入事務提交之后,客戶端所提交的數據才真正的持久化到了數據庫中。
[0080]這里需要強調的是,步驟b到步驟d的過程中,將售后服務申請單數據持久化到數據庫以及將所述售后服務申請單數據中的待處理數據寫入Redis緩存,這兩個過程是在同一個事務邊界中完成的,進而確保了數據庫和Redis緩存中的數據的一致性。
[0081]步驟e、回滾所述數據庫事務,并斷開所述數據庫連接,并向客戶端發出售后服務申請單數據存儲失敗提示信息。
[0082]經過本步驟e,可使得數據庫返回到其創建連接之前的狀態,防止售后服務申請單數據持久化到數據庫失敗而可能對數據庫存儲信息造成的破壞。向客戶端發出售后服務申請單數據存儲失敗提示信息,能夠使得客戶得知其售后服務申請單上傳失敗,以重新進行上傳。
[0083]這里需要注意的是數據的寫入順序非常關鍵,必須先確保售后服務申請單數據持久化到數據庫成功,然后再將待處理數據寫入到Redis緩存,這樣才能保證數據庫和Redis緩存中數據的一致性。如果順序反過來,就可能出現Redis緩存寫成功,但持久化過程中出現異常導致數據庫事務回滾的問題,這樣的結果就是數據庫中沒有該售后服務申請單數據,而Redis緩存中已經存有該售后服務申請單的待處理數據了,因為Redis緩存不會和數據庫事務一起回滾。
[0084]經過上述步驟a至步驟e的過程,便完成了售后服務申請單數據的寫入。
[0085]步驟f、從Redis緩存獲取待處理數據,并對待處理數據進行處理,將處理后的結果數據發送到消息隊列(MQ),之后執行步驟g。
[0086]本步驟f主要通過電商的售后服務專員來完成,售后服務專員通過電商網站的售后服務系統獲取Redis緩存中的待處理數據,并對待處理數據進行審核和處理。當大量的售后服務申請單數據經過步驟a至步驟e進入電商網站的數據庫和Redis緩存中后,售后服務專員僅獲取Redis緩存中的待處理數據,不從數據庫中爭搶售后服務申請單數據,可避免由于數據庫并發性能有限的瓶頸;另外,Redis緩存的讀取/寫入速度要比數據庫的讀取/寫入速度快得多,在同時處理大量售后服務申請單數據的情況下,因為僅從Redis緩存中爭搶售后服務申請單數據,與傳統的僅從數據庫進行搶單相比,本發明的方法也極大的加快了讀取/寫入速度;同時,由于是從Redis緩存獲取待處理數據,所以本發明的方法不易發生數據庫死鎖。
[0087]本發明實施例中,如圖4所示,待處理數據在Redis緩存中采用List (存儲隊列)進行存儲,List支持排序,并且支持單獨操作List中的某個具體數據;在Redis緩存中,與List對應,還具有Complete List(已完成隊列)。在步驟d中,將待處理數據寫入Redis緩存時,根據具體的應用邏輯(服務單領取時需要處理的邏輯,例如更新服務單狀態等)定義不同的List,并將待處理數據寫入到對應的List中。在步驟f中,從Redis緩存獲取待處理數據(data),并對待處理數據進行處理時,是直接從Redis緩存中對應的List中Get(獲取)對應的Value (值),在內存中進行邏輯處理后將該Value轉移到對應的Complete List中,這樣可以避免在高并發下的重復處理。上述中,應用邏輯指的是具體的業務邏輯,可以根據不同的業務邏輯定義不同的數據結構,比如在售后服務單的實施例中,因為售后服務單信息寫入到數據庫中之后,處理數據的業務邏輯是服務單領取,服務單領取業務要求先進先出,需要按照時間順序領取,進而需采用隊列(List)形式。關于Redis緩存以及其中的List以及相關操作等內容為已公開技術,本領域技術人員可通過相關技術文檔獲得,此處不再贅述。
[0088]此外,從Redis緩存中獲取待處理數據并將對應數據移動到Complete List的整個處理過程,利用Redis中的setnx原子操作加鎖,進而保證高并發下的線程安全。
[0089]步驟g、監聽消息隊列,并從消息隊列中獲取結果數據,并將所接收的結果數據持久化到所述數據庫,之后執行步驟h。
[0090]本發明中,所述消息隊列為基于JMS (Java消息服務)的消息總線,進行異步處理的一種實現方式。本發明中,經過步驟f將處理后的結果數據發送到消息隊列,在步驟g中,利用消息隊列,實現了數據庫更新的異步操作,使得Redis緩存中高并發情況下進行數據處理獲得的結果數據,能夠以串行化的方式持久化到數據庫中,一方面確保了數據的一致性和完整性,另一方面避免了數據庫死鎖的問題,也可回避數據庫并發性能差,用戶體驗不好的問題。
[0091]步驟h、判斷結果數據持久化到所述數據庫是否成功,如果成功則執行步驟i,否則執行j。[0092]步驟1、刪除所述Redis緩存中的所述待處理數據。
[0093]步驟j、回滾所述數據庫事務,且不刪除所述Redis緩存中的所述待處理數據。
[0094]從上述過程可以看出,本發明實施例利用Redis緩存保存售后服務申請單數據中的待處理數據,利用Redis緩存對高并發訪問的良好支持,實現Redis緩存中的待處理數據的并發搶占和處理,之后將處理后的結果數據發送到消息隊列,并通過消息隊列以串行化的方式持久化到數據庫中,在保證數據一致性和完整性的情況下實現了結果數據在數據庫中的存儲。在整個的數據處理過程來說,一方面增強了數據的并發性處理,能夠較快的完成數據的處理,不需要客戶較長時間的等待,給客戶帶來良好的體驗,另一方面,也避免了高并發情況下給數據庫帶來的瓶頸問題,避免數據庫死鎖的問題,也確保了數據的一致性和完整性。
[0095]基于上述數據處理方法,本發明同時提供了一種數據處理系統,如圖5所示,其包括,數據庫1、Redis緩存2、第一服務模塊3、數據處理模塊4和第二服務模塊5。其中,數據庫1,用于進行所述數據信息和處理后的結果數據的存儲。Redis緩存2,用于保存所述數據信息中的待處理數據。第一服務模塊3,用于接收客戶端發送來的數據信息,創建數據庫連接,并開啟數據庫事務,將所述數據信息持久化到所述數據庫1,將所述數據信息中的待處理數據寫入所述Redis緩存2,之后提交數據庫事務。數據處理模塊4,用于從所述Redis緩存2獲取所述待處理數據,并對所述待處理數據進行處理,將處理后的結果數據發送到消息隊列。第二服務模塊5,用于監聽所述消息隊列,并從所述消息隊列中獲取所述結果數據,并將所接收的結果數據持久化到所述數據庫1,之后刪除所述Redis緩存2中的所述待處理數據。
[0096]本發明提供的上述數據處理方法和系統,采用Redis緩存保存數據信息中的待處理數據,利用Redis緩存對高并發訪問的良好支持,實現了 Redis緩存中的待處理數據的并發搶占和處理,將處理后的結果數據發送到消息隊列,并通過消息隊列以串行化的方式持久化到數據庫中,在保證數據一致性和完整性的情況下實現了結果數據在數據庫中的存儲。對于整個的數據處理過程來說,一方面增強了數據的并發性處理,能夠較快的完成數據的處理,不需要客戶較長時間的等待,給客戶帶來良好的體驗,另一方面,也避免了高并發情況下給數據庫帶來的瓶頸問題,避免數據庫死鎖的問題,也確保了數據的一致性和完整性。
[0097]以上所述僅為本發明的較佳實施例而已,并不用以限制本發明,凡在本發明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發明保護的范圍之內。
【權利要求】
1.一種數據處理方法,包括數據寫入階段和數據處理階段,其中: 所述數據寫入階段包括: 接收客戶端發送來的數據信息; 創建數據庫連接,并開啟數據庫事務,將所述數據信息持久化到數據庫; 將所述數據信息中的待處理數據寫入Redis緩存,之后提交數據庫事務; 所述數據處理階段包括: 從所述Redis緩存獲取所述待處理數據,并對所述待處理數據進行處理,將處理后的結果數據發送到消息隊列; 監聽所述消息隊列,并從所述消息隊列中獲取所述結果數據,并將所接收的結果數據持久化到所述數據庫; 刪除所述Redis緩存中的所述待處理數據。
2.根據權利要求1所述的數據處理方法,其特征在于,在所述數據寫入階段中: 若所述數據信息持久化到數據庫失敗,則回滾所述數據庫事務,并斷開所述數據庫連接。
3.根據權利要求1所述的數據處理方法,其特征在于,在所述數據處理階段中: 若所述結果數據持久化到所述數據庫失敗,則回滾所述數據庫事務,且不刪除所述Redis緩存中的所述待處理數據。
4.根據權利要求1所述的數據處理方法,其特征在于: 所述Redis緩存中具有存儲隊列List,以及與所述List對應的已完成隊列CompleteList ; 在所述數據寫入階段中: 將所述待處理數據寫入Redis緩存時,是將所述待處理數據寫入所述存儲隊列List中; 在所述數據處理階段中: 從所述Redis緩存獲取所述待處理數據,并對所述待處理數據進行處理時,是從所述存儲隊列List中取出所述待處理數據以進行處理,將處理后的結果數據轉存到與所述List 相對應的 Complete List 中。
5.根據權利要求4所述的數據處理方法,其特征在于: 從所述存儲隊列List中取出所述待處理數據以進行處理,將處理后的結果數據轉存到與所述List相對應的Complete List中的過程中,采用setnx原子操作對所述待處理數據進行加鎖處理。
6.根據權利要求1所述的數據處理方法,其特征在于:在所述數據寫入階段中,所述將所述數據信息持久化到數據庫與所述將所述數據信息中的待處理數據寫入Redis緩存,在同一個事務邊界中完成。
7.根據權利要求1至6任一項所述的數據處理方法,其特征在于:所述數據信息為售后服務申請單數據。
8.一種數據處理系統,其特征在于,包括: 數據庫,用于進行所述數據信息和處理后的結果數據的存儲; Redis緩存,用于保存所述數據信息中的待處理數據;第一服務模塊,用于接收客戶端發送來的數據信息,創建數據庫連接,并開啟數據庫事務,將所述數據信息持久化到所述數據庫,將所述數據信息中的待處理數據寫入所述Redis緩存,之后提交數據庫事務; 數據處理模塊,用于從所述Redis緩存獲取所述待處理數據,并對所述待處理數據進行處理,將處理后的結果數據發送到消息隊列; 第二服務模塊,用于監聽所述消息隊列,并從所述消息隊列中獲取所述結果數據,并將所接收的結果數據持久化到所述數據庫,之后刪除所述Redis緩存中的所述待處理數據。
9.根據權利要求8所述的數據處理系統,其特征在于: 所述Redis緩存中具有存儲隊列List,以及與所述List對應的已完成隊列CompleteList ; 所述第一服務模塊將所述待處理數據寫入Redis緩存時,是將所述待處理數據寫入所述存儲隊列List中; 所述數據處理模塊從所述Redis緩存獲取所述待處理數據,并對所述待處理數據進行處理時,是從所述存儲隊列List中取出所述待處理數據以進行處理,將處理后的結果數據轉存到與所述List相對應的Complete List中。
10.根據權利要求8或9所述的并發數據處理系統,其特征在于:所述數據信息為售后服務申請單數 據。
【文檔編號】G06F17/30GK103886079SQ201410115278
【公開日】2014年6月25日 申請日期:2014年3月26日 優先權日:2014年3月26日
【發明者】者文明 申請人:北京京東尚科信息技術有限公司, 北京京東世紀貿易有限公司