[發明專利]定時任務集群方法及其裝置在審
| 申請號: | 201410055769.3 | 申請日: | 2014-02-19 |
| 公開(公告)號: | CN103744724A | 公開(公告)日: | 2014-04-23 |
| 發明(設計)人: | 高雷 | 申請(專利權)人: | 互聯網域名系統北京市工程研究中心有限公司;北龍中網(北京)科技有限責任公司 |
| 主分類號: | G06F9/46 | 分類號: | G06F9/46 |
| 代理公司: | 北京萬慧達知識產權代理有限公司 11111 | 代理人: | 張金芝;楊穎 |
| 地址: | 101408 北京市懷柔*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 定時 任務 集群 方法 及其 裝置 | ||
技術領域
本發明屬于計算機技術領域,具體涉及一種定時任務集群方法及其裝置。
背景技術
在linux環境下,通常采用Crontab技術執行定時任務。但這種技術方案存在單點問題,即某一臺linux服務器上,如果crontab進程工作異常或者linux服務器本身宕機損壞,會導致目標任務不能按預期定時執行;如果使用多個linux服務器部署crontab任務,又存在相同任務被重復執行的問題。
Spring?quartz是JAVA領域一項與crontab相類似的定時處理技術,存在和crontab相同的執行機制和缺陷。無法解決單點問題,達不到高可用。
針對crontab等簡單集群技術所遇到的單點問題,Quartz集群技術實現了定時任務的高可用,使用多個定時任務實例通過爭鎖機制決定某時間點由其中一個定時任務實例來執行定時任務。由于現有的quartz集群技術通常使用數據庫作為鎖介質,集群方案十分笨重,且由于定時集群的高可用依賴于數據庫的高可用,實際加大了定時集群實現高可用的難度。
發明內容
本發明提供一種定時任務集群方法及其裝置,其可以解決解決現有技術中定時任務方案的單點問題,從而實現定時集群的高可用。
為實現上述目的,本發明提供一種定時任務集群方法,該定時任務集群方法包括:
將集群內的節點分布式部署在至少三個的奇數個服務器節點上;
將定時任務實例分布式部署在各個定時任務節點上;
各個定時任務實例按照計劃時間點從集群內獲取定時任務執行權利,獲得寫入權的定時任務實例將執行定時任務,未獲得寫寫入權的定時任務實例則放棄執行定時任務,直至下一個計劃時間點,再循環執行獲取定時任務執行權利。
進一步地,還包括:
各定時任務實例按照相同的路徑命名規則向集群內申請寫入相同的路徑信息。
進一步地,所述路徑命名規則包括:
根據定時任務包名、類名、當前時間戳,生成節點路徑。
進一步地,還包括:
各個定時任務執行定時計算時,采用分布式鎖機制,按照相同的路徑命名規則,向集群內申請創建一個臨時節點,并獲得所述臨時節點下的所有創建節點的序號,根據所述臨時節點的序號,判斷是否獲得鎖成功以確定是否執行定時計算。
進一步地,判斷是否獲得鎖成功以確定是否執行定時計算具體包括:
判斷所述臨時節點的序號是否為最小,若是,則獲得鎖,繼續執行定時計算,計算完畢刪除臨時節點;若否,則獲得鎖失敗,刪除臨時節點,取消本次定時計算。
進一步地,各個定時任務節點啟動時保持時間同步。
進一步地,還包括:
根據對定時任務的包名以及類名進行區分,以實現不同的定時任務共享集群。
為實現上述目的,本發明提供一種實現定時任務集群的裝置,該裝置包括:
節點設置單元,用于將集群內的節點分布式部署在3個以上的單數個服務器節點上;
定時任務實例設置單元,用于將定時任務實例分布式部署在各個定時任務節點上;
定時任務執行單元,用于各個定時任務實例按照計劃時間點從集群內獲取定時任務執行權利,獲得寫入權的定時任務實例將執行定時任務,未獲得寫寫入權的定時任務實例則放棄執行定時任務,直至下一個計劃時間點,再循環執行獲取定時任務執行權利。
進一步地,還包括:
各個定時任務執行定時計算時,采用分布式鎖機制,按照相同的路徑命名規則,向集群內申請創建一個臨時節點,并獲得所述臨時節點下的所有創建節點的序號,根據所述臨時節點的序號,判斷是否獲得鎖成功以確定是否執行定時計算。
進一步地,判斷是否獲得鎖成功以確定是否執行定時計算具體包括:
判斷所述臨時節點的序號是否為最小,若是,則獲得鎖,繼續執行定時計算,計算完畢刪除臨時節點;若否,則獲得鎖失敗,刪除臨時節點,取消本次定時計算。
本發明提供的定時任務集群方法及其裝置,通過定時任務多點部署,解決現有技術中定時任務方案的單點問題。本發明中多個定時任務實例同時運行,在預期時間點,只有一個定時任務實例執行任務;即使其中一個實例因為意外故障無法運行,仍有其他實例保證定時任務得到執行;采用zookeeper分布式鎖機制,在同時具有多個定時任務實例的情況下,保證只有一個實例獲得執行權限。它避免了采用數據庫這樣笨重的鎖方案,使定時任務集群在部署及維護上更加簡單便捷。
附圖說明
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于互聯網域名系統北京市工程研究中心有限公司;北龍中網(北京)科技有限責任公司,未經互聯網域名系統北京市工程研究中心有限公司;北龍中網(北京)科技有限責任公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410055769.3/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種多核資源的調度方法及裝置
- 下一篇:一種確認程序正確的方法及裝置





