项目简介
本项目是基于Go语言开发的分布式shell任务调度系统,旨在解决传统项目及docker化容器内执行shell流程繁琐的问题。系统可提前定义shell任务,按设定时间自动执行,并通过界面展示执行结果。它基于cron实现任务调度,采用etcd实现分布式锁、任务分发等,包含master和worker两种应用角色,能够进行任务管理、服务发现、日志管理和任务调度等操作。
项目的主要特性和功能
- 分布式任务管理:支持在分布式环境下管理和调度任务,防止单个节点故障影响任务执行。
- 灵活任务定义:可使用cron表达式灵活定义任务执行计划,支持多种执行频率和触发条件。
- 实时监控与日志管理:提供Web接口和API,便于查询任务执行状态、输出结果和日志信息,同时自动记录并支持查询和导出任务执行日志。
- 机器状态同步:借助etcd实现机器心跳和状态同步,实时感知机器状态。
- 多角色分工协作:master负责任务管理、服务发现及日志管理,worker负责具体任务调度。
安装使用步骤
环境准备
确保已安装Go语言开发环境,以及etcd作为分布式存储,还有MongoDB等外部依赖。
代码下载
使用git clone
命令从项目仓库下载源码到本地。
环境配置
根据项目需求,配置MongoDB、etcd等外部依赖。
编译和构建
在master和worker的main目录下执行打包命令:
- Mac下编译Linux和Windows 64位可执行程序:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go
- Linux下编译Mac和Windows 64位可执行程序:
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build main.go
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go
- Windows下编译Mac和Linux 64位可执行程序:
```
SET CGO_ENABLED=0
SET GOOS=darwin
SET GOARCH=amd64
go build main.go
SET CGO_ENABLED=0 SET GOOS=linux SET GOARCH=amd64 go build main.go ```
启动和测试
运行编译生成的可执行文件,启动任务调度系统,并进行功能测试。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】