Open-Job
開源分布式任務調度系統,專案官方檔案地址
?? Open-Job 介紹
??2022 最新的輕量級分布式任務調度系統
? 已實作功能點
-
定時任務基于 redis 實作,支持動態修改任務狀態,同時支持拓展其他實作方式
-
客戶端與服務端通信采用 Grpc,同時支持拓展其他通信方式
-
注冊中心支持 Nacos、Zookeeper,同時支持拓展其他注冊中心,而且支持節點動態上線下線
-
客戶端集群部署支持負載均衡,默認提供了一致性hash、隨機權重演算法,支持多種容錯機制,默認提供了失敗重試、故障轉移等機制,負載均衡和容錯都支持拓展
-
任務監控報警能力支持
-
前后端分離,管理后臺基于 antd-pro 搭建
?? 快速開始
1 搭建任務管理系統
- 下載本專案
git clone https://github.com/lijunping365/Open-Job.git
- 創建資料庫表
sql 檔案在 doc/open_job.sql
- 下載前端專案
git clone https://github.com/lijunping365/Open-Job-Admin.git
需安裝 node.js,
- 啟動服務端,啟動前端專案
登錄任務管理系統創建任務,之后便可以進行任務管理了
2 搭建任務執行模塊
創建任務執行模塊可按照專案中客戶端示例工程搭建
- 在任務執行專案中加入以下依賴
<dependency>
<groupId>org.open.job</groupId>
<artifactId>job-starter-client</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
- 創建任務執行類并實作 JobHandler
示例1
@Slf4j
@Component
public class JobHandlerOne implements JobHandler {
@Override
public String bindingJobHandlerName() {
return JobHandlerNameConstants.JOB_ONE;
}
@Override
public void handler(String params) {
log.info("JobHandlerOne 處理任務");
}
}
示例2
@Slf4j
@Component
public class JobHandlerTwo implements JobHandler {
@Override
public String bindingJobHandlerName() {
return JobHandlerNameConstants.JOB_TWO;
}
@Override
public void handler(String params) {
log.info("JobHandlerTwo 處理任務");
}
}
注意:
-
handler 方法的引數 params 為 json 字串格式,可進行 json 序列化
-
啟動后端服務端與后端客戶端無先后順序
-
詳細說明請參閱官方檔案:https://lijunping365.github.io/#/
?? 目前還未完成的功能
-
任務的監控功能
-
任務的報警功能
? FAQ
有問題可以提 issues,我會及時解答
??收尾
該分布式任務調度系統,是從本人之前做的一個系統中抽離出來的,開源不易,歡迎 star
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/442773.html
標籤:Java
上一篇:Spring Ioc和DI注解
