基于 Golang 开发的分布式定时任务管理系统

Elastic Crontab System

基于 ETCD 实现的简单易用的分布式定时任务管理系统,让跨主机的定时任务管理变得更加简单高效。
项目采用 Iris + Vue (SPA)并将前端静态资源以二进制形式打包进可执行程序中。

架构设计

基于 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 任务执行器;
  • [x] 集成 Docker 部署;
  • [x] 项目文档;
  • [x] 集成 CI.
  • [] 角色权限管理模块;
  • [] 集成单元测试;
  • [] 热重启;
  • [] 软件更新;

学Go以来,写的第一个项目,欢迎各位大佬给我提 pull requestissue

本作品采用《CC 协议》,转载必须注明作者和本文链接
附言 1  ·  4年前
讨论数量: 1

厉害了老哥,请教个问题:
是否有设计master节点宕机的容灾?

4年前 评论
GeorgeKing (楼主) 4年前
dongshanlang (作者) 4年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!