基於 ETCD 實現的簡單易用的分散式定時任務管理系統,讓跨主機的定時任務管理變得更加簡單高效。
架構設計
Web UI
原始碼安裝
# 克隆到本地
$ git clone git@github.com:betterde/ects.git
# 安裝前端依賴
$ cd web && yarn install
# 打包前端資源
$ yarn build
# 安裝打包靜態資源到二進位制的工具
$ cd ../ && go get -u github.com/shuLhan/go-bindata/...
# 打包靜態資源
$ go-bindata -pkg web -o web/bindata.go web/dist/...
# 編譯
$ go build -o ects main.go
下載可執行程式
瞭解更多細節
TODO
- [x] Web UI;
- [x] Master 節點 API;
- [x] 基於 ETCD 的服務註冊於發現;
- [x] 基於 ETCD 的流水線釋出於訂閱;
- [x] 基於 ETCD 實現的分散式鎖,用於更新 Worker 節點的狀態;
- [x] 實現 Mail 任務執行器;
- [x] 實現 HTTP 任務執行器;
- [x] 實現 Hook 任務執行器;
- [] 實現單節點部署模式,即不依賴 ETCD 實現分散式,在一個節點上融合 Master 和 Worker 的所有功能;
- [] 角色許可權管理模組;
- [] 整合單元測試;
- [] 整合 Docker 部署;
- [] 整合 CI;
- [] 熱重啟;
- [] 軟體更新;
- [] 專案文件。
學Go以來,寫的第一個專案,歡迎各位大佬給我提 pull request
或 issue
。