本發明專利技術公開了一種復雜任務的并行處理方法和裝置。所述方法包括:請求處理單元將接收到的客戶端請求分解為多個無依賴關系的子任務,并將每一個子任務均發送給一個獨立的工作單元進行處理;請求處理單元接收各個工作單元返回的成功處理結果或失敗處理結果;當在預定時間段內接收到所有子任務的成功處理結果時,請求處理單元將所有的成功處理結果進行合并操作后發送給相應的客戶端;而當有至少一個子任務未在預定時間段內返回成功處理結果時,請求處理單元中斷所有未完成的子任務的處理,并對已完成的需要進行回滾操作的子任務進行回滾操作。本發明專利技術可以有效地提高單個請求的響應速度,降低響應時間,提高服務器側的資源使用效率。
【技術實現步驟摘要】
本專利技術涉及計算機
,特別涉及一種復雜任務的并行處理方法和裝置。
技術介紹
在現有的軟件系統中,客戶端(Client) /服務器(Server)模式的使用十分廣泛。在該模式中,一般都是由Client提交請求,然后Client等待Server返回結果;Server接收到Client的請求后,根據該請求進行相應的處理,然后將處理結果返回給Client。由于一個Server —般可以連接多個Client,因此Server端通常被設計為可同時處理多個并發的請求,所有同時到達的請求可以互相不受干擾的進行并行處理;而在很多關鍵的重要應用中,客戶端對于請求的響應時間也有一定的要求。隨著各種實際應用的復雜度的增加、并發用戶數量的不斷提高以及所需處理的數據類型的逐步擴展,Client/Server模式的設計也出現了很多進化。目前,常用的Client/Server模式有以下的幾種模式1、分層模式將原來單一的Server端分為多個中間層,每一層功能定義明確,如接口層、業務邏輯層、數據服務層等。其中,所述的分層可以是邏輯分層或物理分層。2、緩存技術將經常訪問的數據緩存儲起來以備后續步驟中重復使用。3、分布式技術將處理或計算分布到多個節點進行,以提高可擴展性。4、異步處理模式為了解決請求過于復雜、處理時間長和不可控的問題,Client被設計為提交請求后即返回,而不等待處理結果;而Server端則在處理完畢后將以某種方式通知Client。然而,在現有技術中的Client/Server模式的實現方式中,對于單個請求的處理機制上沒有太多的實現方式,通常情況下都是將單個請求進行串行處理,并使用分層模式進行負載均衡,使用緩存技術提高訪問速度。而如果同步方式無法滿足限定時間內的處理,則將使用復雜的異步處理模式。因此,對于復雜的請求處理時,如果Client/Server模式中采用同步模式,則將造成處理緩慢的問題,導致用戶的體驗度不佳。而且,如果不能在限定時限內完成相應的處理,則可能會造成請求處理能力的下降。雖然在現有的復雜任務處理方法中使用了緩存技術來提高數據訪問的效率,但對于關鍵任務的作用卻并不大。而且,雖然通過使用分布式技術進行線性擴展系統負載以解決高并發、海量數據的問題,但上述分布式技術對于單個請求反而會降低響應速度。此外,如果在Client/Server模式中采用異步處理模式,則會極大地增加整個系統設計的復雜度,從而不利于具體實現及擴展。綜上可知,由于現有技術中的復雜任務的處理方法具有如上所述的缺點,因此在對復雜任務進行處理時,如何有效提高單個請求的響應速度、降低響應時間和提高服務器側的資源使用效率,已經是本領域中亟需解決的問題。
技術實現思路
根據本專利技術,提供了一種復雜任務的并行處理方法和裝置,從而可有效地提高單個請求的響應速度,降低響應時間,提高服務器側的資源使用效率。根據本專利技術的一種復雜任務的并行處理方法,其包括A、請求處理單元將接收到的客戶端請求分解為多個無依賴關系的子任務,并將每一個子任務均發送給一個獨立的工作單元進行處理;B、請求處理單元接收各個工作單元返回的成功處理結果或失敗處理結果;C、當在預定時間段內接收到所有子任務的成功處理結果時,請求處理單元將所有的成功處理結果進行合并操作后發送給相應的客戶端;而當有至少一個子任務未在預定時間段內返回成功處理結果時,請求處理單元中斷所有未完成的子任務的處理,并對已完成的需要進行回滾操作的子任務進行回滾操作。其中,所述步驟A包括請求處理單元從接收到的客戶端請求中獲取所需服務的參數;為所述客戶端請求生成一個全局唯一的流水號;根據所述客戶端請求涉及的服務調用,按預定義規則將所述客戶端請求分解為多個無依賴關系的子任務;在各個子任務之中綁定與各子任務相關的參數。其中,所述在各個子任務之中綁定與各子任務相關的參數包括將與各子任務相關的參數與相應的子任務綁定,形成相應的閉包對象;其中,所述閉包對象中包括調用方法和調用方法所需參數的對象。其中,所述與各子任務相關的參數中還可進一步包括子任務所屬的客戶端請求的流水號。其中,所述步驟B還進一步包括當工作單元向請求處理單元返回成功處理結果時,所述工作單元將其所處理的子任務標識為已完成。其中,所述步驟B還進一步包括當所述已完成的子任務為質變操作時,工作單元根據所述已完成的子任務所屬客戶端請求的流水號,在預設的回滾執行條目中記錄該已完成的子任務;其中,所述質變操作為更改狀態的操作或寫入數據的操作。其中,預先設置一個初始值為O的觸發變量,則所述步驟B還進一步包括當請求處理單元接收到一個工作單元返回的成功處理結果時,所述請求處理單元將所述觸發變量的值增加一。其中,所述步驟C包括Cl、當預設的定時器超時時,執行步驟C5 ;否則,執行步驟C2 ;其中,所述定時器的定時時長等于預先設置的預定時間段的長度;C2、當接收到的處理結果為成功處理結果時,執行步驟C3 ;否則,執行步驟C5 ;C3、當所有子任務均已被成功處理時,執行步驟C4 ;否則,返回執行步驟B ;C4、將所有的處理結果進行合并操作后發送給相應的客戶端,結束流程;C5、中斷所有未完成的子任務的處理,并對所有已完成的子任務進行回滾操作。其中,該方法還進一步包括當預設的定時器超時時,請求處理單元向客戶端返回處理超時的信息。其中,該方法還進一步包括當接收到的處理結果不是成功處理結果時,請求處理單元向客戶端返回處理失敗的信息。其中,判斷所有子任務均已被成功處理的方法為判斷所述觸發變量的值是否等于所有子任務的總數目;如果是,則所有子任務均已被成功處理;否則,至少有一個子任務仍未被成功處理。其中,所述步驟C4還進一步包括刪除與所述客戶端請求的流水號相對應的回滾執行條目。其中,所述刪除與所述客戶端請求的流水號相對應的回滾執行條目包括請求處理單元可向預先設置的垃圾收集單元發送丟棄指令,所述丟棄指令中攜帶有客戶端請求的流水號;所述垃圾收集單元根據所述丟棄指令刪除與所述流水號相對應的回滾執行條目。其中,所述對所有已完成的子任務進行回滾操作包括對與所述客戶端請求的流水號相對應的回滾執行條目中存儲的所有子任務進行回滾操作。其中,所述對與所述客戶端請求的流水號相對應的回滾執行條目中存儲的所有子任務進行回滾操作包括請求處理單元向預先設置的垃圾收集單元發送執行指令,所述執行指令中攜帶有客戶端請求的流水號;所述垃圾收集單元根據所述執行指令對與所述流水號相對應的回滾執行條目中存儲的所有子任務進行回滾操作。其中,所述中斷所有未完成的子任務的處理包括向所有未完成的子任務所對應的工作單元發送中斷指令;所述工作單元根據接收到的中斷指令中斷對未完成的子任務的處理。本專利技術實施例中還提供了一種復雜任務的并行處理裝置,其包括請求處理單元、垃圾收集單元和多個工作單元;所述請求處理單元,用于將接收到的客戶端請求分解為多個無依賴關系的子任務,并將每一個子任務均發送給一個獨立的工作單元;還用于接收各個工作單元返回的成功處理結果或失敗處理結果,并當在預定時間段內接收到所有子任務的成功處理結果時,將所有的成功處理結果進行合并操作后發送給相應的客戶端;當有至少一個子任務未在預定時間段內返回成功處理結果時,向所有未完成的子任務所對應的工作單元發送中斷指令本文檔來自技高網...
【技術保護點】
一種復雜任務的并行處理方法,所述方法包括:A、請求處理單元將接收到的客戶端請求分解為多個無依賴關系的子任務,并將每一個子任務均發送給一個獨立的工作單元進行處理;B、請求處理單元接收各個工作單元返回的成功處理結果或失敗處理結果;C、當在預定時間段內接收到所有子任務的成功處理結果時,請求處理單元將所有的成功處理結果進行合并操作后發送給相應的客戶端;而當有至少一個子任務未在預定時間段內返回成功處理結果時,請求處理單元中斷所有未完成的子任務的處理,并對已完成的需要進行回滾操作的子任務進行回滾操作。
【技術特征摘要】
1.一種復雜任務的并行處理方法,所述方法包括A、請求處理單元將接收到的客戶端請求分解為多個無依賴關系的子任務,并將每一個子任務均發送給一個獨立的工作單元進行處理;B、請求處理單元接收各個工作單元返回的成功處理結果或失敗處理結果;C、當在預定時間段內接收到所有子任務的成功處理結果時,請求處理單元將所有的成功處理結果進行合并操作后發送給相應的客戶端;而當有至少一個子任務未在預定時間段內返回成功處理結果時,請求處理單元中斷所有未完成的子任務的處理,并對已完成的需要進行回滾操作的子任務進行回滾操作。2.如權利要求1所述的復雜任務的并行處理方法,其中,所述步驟A包括請求處理單元從接收到的客戶端請求中獲取所需服務的參數;為所述客戶端請求生成一個全局唯一的流水號;根據所述客戶端請求涉及的服務調用,按預定義規則將所述客戶端請求分解為多個無依賴關系的子任務;在各個子任務之中綁定與各子任務相關的參數;和所述在各個子任務之中綁定與各子任務相關的參數包括將與各子任務相關的參數與相應的子任務綁定,形成相應的閉包對象;其中,所述閉包對象中包括調用方法和調用方法所需參數的對象。3.如權利要求1所述的復雜任務的并行處理方法,其中,所述步驟B還進一步包括 當工作單元向請求處理單元返回成功處理結果時,所述工作單元將其所處理的子任務標識為已完成;當所述已完成的子任務為質變操作時,工作單元根據所述已完成的子任務所屬客戶端請求的流水號,在預設的回滾執行條目中記錄該已完成的子任務;其中,所述質變操作為更改狀態的操作或寫入數據的操作。4.如權利要求3所述的復雜任務的并行處理方法,其中,預先設置一個初始值為O的觸發變量,則所述步驟B還進一步包括當請求處理單元接收到一個工作單元返回的成功處理結果時,所述請求處理單元將所述觸發變量的值增加一;所述步驟C包括Cl、當預設的定時器超時時,執行步驟C5 ;否則,執行步驟C2 ;其中,所述定時器的定時時長等于預先設置的預定時間段的長度;C2、當接收到的處理結果為成功處理結果時,執行步驟C3 ;否則,執行步驟C5 ;C3、當所有子任務均已被成功處理時,執行步驟C4 ;否則,返回執行步驟B ;C4、將所有的處理結果進行合并操作后發送給相應的客戶端,結束流程;C5、中斷所有未完成的子任務的處理,并對所有已完成的子任務進行回滾操作。5.如權利要求4所述的復雜任務的并行處理方法,其中,所述方法還進一步包括當預設的定時器超時時,請求處理單元向客戶端返回處理超時的信息;當接收到的處理結果不是成功處理結果時,請求處理單...
【專利技術屬性】
技術研發人員:紀震寰,
申請(專利權)人:青島海信傳媒網絡技術有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。