[發明專利]分布式系統中的任務處理方法和裝置在審
| 申請號: | 201410283561.7 | 申請日: | 2014-06-23 |
| 公開(公告)號: | CN105446801A | 公開(公告)日: | 2016-03-30 |
| 發明(設計)人: | 江建明;程冬;楊曉芬 | 申請(專利權)人: | 阿里巴巴集團控股有限公司 |
| 主分類號: | G06F9/48 | 分類號: | G06F9/48 |
| 代理公司: | 北京集佳知識產權代理有限公司 11227 | 代理人: | 王寶筠 |
| 地址: | 英屬開曼群島大開曼*** | 國省代碼: | 開曼群島;KY |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 分布式 系統 中的 任務 處理 方法 裝置 | ||
技術領域
本申請涉及分布式計算領域,特別是涉及分布式系統中的任務處理方法和裝置。
背景技術
無論是在大型的互聯網應用中,還是在企業級架構中,都越來越廣泛地采用分布式服務框架來提供各種服務。例如,在一個大型的互聯網應用中,不可避免地需要將一個“應用”拆分成多個“業務”(或者,也可以稱為“服務”),而每個“業務”對應的任務最終是由分布式系統中的服務器處理完成的。
一般情況下,一個“應用”下的各“業務”之間很可能會存在依賴關系,并且,依賴關系還可能錯綜復雜。因此,對于每一個“業務”而言,都有可能因為其依賴的其它“業務”出現異常而被迫中斷。此時,就需要對中斷“業務”進行異常處理。現有技術中的一種異常處理方式是:將中斷“業務”在中斷前的業務數據保存到存儲服務器上,待觸發重新處理該中斷“業務”對應的任務時,再由分布式系統中的任務服務器(或任務進程)根據存儲服務器上的業務數據繼續處理該中斷“業務”對應的任務。
在實現本申請的過程中,本申請的發明人發現現有技術中至少存在如下問題:當“業務”中斷后,是由工作人員通過在后臺界面上進行人工操作來觸發重新處理中斷“業務”對應的任務的。但是,如果在誤操作的情況下,多名工作人員重復性地觸發重新處理同一個中斷“業務”對應的任務,就會造成多個任務服務器(或任務進程)重復處理同一個任務,從而引起業務數據不滿足冪等性要求。
發明內容
為了解決上述技術問題,本申請實施例提供了分布式系統中的任務處理方法和裝置,以解決現有技術中因多個任務服務器(或任務進程)重復處理同一個任務所引起的業務數據不滿足冪等性的問題。
本申請實施例公開了如下技術方案:
一種分布式系統中的任務處理方法,所述分布式系統包括多個任務處理器,所述方法包括:
所述多個任務處理器中的任一任務處理器在啟動任務之后且處理所述任務之前,判斷所述任務的當前存活狀態是否為存活;
如果所述任務的當前存活狀態為存活,則不處理所述任務;如果所述任務的當前存活狀態為死亡,先將所述任務的當前存活狀態從死亡標記為存活,再處理所述任務,并在處理完所述任務后,將所述任務的當前存活狀態從存活標記為死亡。
優選的,所述方法還包括:
在將所述任務的當前存活狀態從死亡標記為存活后,所述多個任務處理器中的任一任務處理器被設置為定時更新所述任務的當前存活時間。
進一步優選的,所述方法還包括:
所述多個任務處理器中的任一任務處理器被設置為定時判斷所述任務的當前存活狀態是否為存活;
如果所述任務的當前存活狀態為存活,進一步判斷所述任務持續存活的時間長度是否大于或等于預設的時間長度閾值;
如果是,更改所述任務的當前存活狀態為死亡,否則,保持所述任務的當前存活狀態為存活。
優選的,所述方法還包括:
在啟動任務之前,判斷預設的工作周期是否到達;
如果是,自動啟動所述任務,否則,不啟動所述任務。
優選的,所述分布式系統還包括與所述多個任務處理器通信的存儲服務器,所述判斷所述任務的當前存活狀態是否為存活,包括:
讀取保存在所述存儲服務器中的用于指示所述任務的當前存活狀態的標識;
根據所述標識確定所述任務的當前存活狀態是否為存活。
進一步優選的,每種類型下的任務在所述存儲服務器上保存唯一一個所述標識。
一種分布式系統中的任務處理裝置,包括:
第一判斷模塊,用于在啟動任務之后且處理所述任務之前,判斷所述任務的當前存活狀態是否為存活;
任務處理模塊,用于如果所述第一判斷模塊的判斷結果為是,不處理所述任務,如果所述第一判斷模塊的判斷結果為否,先將所述任務的當前存活狀態從死亡標記為存活,再處理所述任務,并在處理完所述任務后,將所述任務的當前存活狀態從存活標記為死亡。
優選的,所述裝置還包括:
存活時間更新模塊,用于在將所述任務的當前存活狀態從死亡標記為存活后,定時更新所述任務的當前存活時間。
進一步優選的,所述裝置還包括:
第二判斷模塊,用于定時判斷所述任務的當前存活狀態是否為存活;
第三判斷模塊,用于如果所述第二判斷模塊的判斷結果為是,進一步判斷所述任務持續存活的時間長度是否大于或等于預設的時間長度閾值;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于阿里巴巴集團控股有限公司,未經阿里巴巴集團控股有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.17sss.com.cn/pat/books/201410283561.7/2.html,轉載請聲明來源鉆瓜專利網。





