基於 Golang 開發的分散式定時任務管理系統

Jinrenjie發表於2019-09-06

基於 ETCD 實現的簡單易用的分散式定時任務管理系統,讓跨主機的定時任務管理變得更加簡單高效。

架構設計

基於 Golang 開發的分散式定時任務管理系統

Web UI

基於 Golang 開發的分散式定時任務管理系統

原始碼安裝

# 克隆到本地
$ 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 requestissue

相關文章