Clock

基于go cron的可视化调度轻量级调度框架,支持DAG任务依赖,支持bash命令,前端及后端编译完成(基于packr2)后仅有一个二进制文件,轻松部署

地址

https://github.com/BruceDone/clock

环境

使用

直接使用

下载git上的release列表,根据系统下载相应的二进制文件,使用命令

./clock -c ./config/dev.yaml

自己编译前后端

将前端项目 clock-admin 下载到本地,使用命令 npm run build, 编译生成前端项目文件dist, 将后端项目 clock 下载到本地, 进入项目根目录,确保安装了packr2 ,使用如下命令

rm -rf webapp
mkdir -p ./webapp
cp -r /你的clock-admin文件夹/dist/* ./webapp
packr2 clean
packr2
# 根据发布的目标平台,调整如下命令
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go generate  
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build

使用命令./clock -c config/dev.yaml 载入你的配置文件,完成后打开浏览器 http://127.0.0.1:9528 ,输入用户名密码就可以进入管理后台

结构

├── config - 配置文件夹,示例文件所在
├── controller - 控制层
├── packrd - packr2生成的静态资源
├── param - 参数相关
├── runner - 执行器
├── server - view层
├── storage - 存储相关
└── webapp - 由clock-admin发布的前端资源
    ├── css
    ├── fonts
    ├── img
    └── js

特性与功能

  • DAG任务关联 - 可以管理任务的前后依赖
  • 可视化管理
  • 支持多种数据库: sqlite , mysql ,postgresql
  • 前后端打包完成后只有一个二进制文件,极其方便部署
  • 跨平台

使用截图

登录进入控制台

添加任务容器

点击新增,调度表达式这里支持cron和@every语法,更多语法请参考:cron

点击配置进入子任务配置界面

点击任务编辑下的新增,选中新增的节点,编辑任务bash命令,任务名,是否保存日志,及任务超时时间(小技巧:选中画板空白处为新增,选中节点为编辑状态),可以自由编辑节点(任务)之间的关系,摆好位置之后选择保存

查看后台任务输出日志

查看持久化的日志