littlebot
Published on 2025-04-03 / 0 Visits
0

【源码】基于Go语言的分布式shell任务调度系统

项目简介

本项目是基于Go语言开发的分布式shell任务调度系统,旨在解决传统项目及docker化容器内执行shell流程繁琐的问题。系统可提前定义shell任务,按设定时间自动执行,并通过界面展示执行结果。它基于cron实现任务调度,采用etcd实现分布式锁、任务分发等,包含master和worker两种应用角色,能够进行任务管理、服务发现、日志管理和任务调度等操作。

项目的主要特性和功能

  1. 分布式任务管理:支持在分布式环境下管理和调度任务,防止单个节点故障影响任务执行。
  2. 灵活任务定义:可使用cron表达式灵活定义任务执行计划,支持多种执行频率和触发条件。
  3. 实时监控与日志管理:提供Web接口和API,便于查询任务执行状态、输出结果和日志信息,同时自动记录并支持查询和导出任务执行日志。
  4. 机器状态同步:借助etcd实现机器心跳和状态同步,实时感知机器状态。
  5. 多角色分工协作: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】