字
字节笔记本
2026年2月18日
gocron:Go语言开发的轻量级定时任务管理系统
API中转
¥120
本文介绍 gocron,一个使用 Go 语言开发的轻量级定时任务集中调度和管理系统。该项目提供了 Web 界面来管理定时任务,支持 crontab 表达式、任务依赖、失败重试等功能,是替代 Linux crontab 的现代化解决方案。
项目简介
gocron 是一个开源的定时任务管理系统,由 gaowei-space 基于 ouqiang/gocron 进行功能迭代开发。该项目使用 Go 语言编写,提供 Web 界面来集中管理定时任务,支持多节点部署和权限控制。
该项目 fork 自 ouqiang/gocron,并依据实际需求和喜好进行了功能迭代,发布了 v1.6 版本,优化了界面样式与布局,调整了权限等级系统。
核心特性
- Web 界面管理:通过直观的 Web 界面管理定时任务,无需编辑 crontab 文件
- 精确调度:支持 crontab 时间表达式,精确到秒级调度
- 失败重试:任务执行失败时可自动重试
- 超时控制:任务执行超时自动强制结束
- 任务依赖:支持配置任务依赖关系,A 任务完成后再执行 B 任务
- 权限控制:多级账户权限管理
- 超级管理员:管理所有任务
- 管理员:管理自己的任务,查看其他任务和日志
- 普通用户:仅可查看所有任务和日志
- 任务类型:
- Shell 任务:在任务节点上执行 shell 命令,支持多节点同时运行
- HTTP 任务:访问指定 URL,由调度器直接执行,不依赖任务节点
- 日志查看:查看任务执行结果日志
- 通知功能:任务执行结果支持邮件、Slack、Webhook 通知
- 标签搜索:任务列表支持按标签、命令搜索
技术栈
- Go - 后端编程语言
- Web 前端 - 现代化 Web 界面
- MySQL/SQLite - 数据存储
- Redis - 任务队列和缓存
安装指南
二进制安装
从 GitHub Releases 下载对应平台的二进制文件:
bash
# Linux/macOS
wget https://github.com/gaowei-space/gocron/releases/download/v1.6.2/gocron-v1.6.2-linux-amd64.tar.gz
tar -xzf gocron-v1.6.2-linux-amd64.tar.gz
cd gocron
# 启动服务
./gocron webDocker 安装
bash
# 使用 Docker 运行
docker run -d \
--name gocron \
-p 5920:5920 \
-v /path/to/data:/app/data \
gaowei/gocron:latest源码构建
bash
# 克隆仓库
git clone https://github.com/gaowei-space/gocron.git
cd gocron
# 构建
make build
# 运行
./bin/gocron web快速开始
-
启动服务
bash./gocron web -
访问 Web 界面 打开浏览器访问
http://localhost:5920 -
默认登录
- 用户名:
admin - 密码:
admin
- 用户名:
-
创建任务
- 进入任务列表页面
- 点击新建任务
- 选择任务类型(Shell 或 HTTP)
- 配置 crontab 表达式
- 设置执行节点和通知方式
-
查看日志
- 在任务列表点击日志按钮
- 查看任务执行历史和输出结果
使用示例
创建 Shell 任务
bash
# 任务名称:备份数据库
# 任务类型:Shell
# 执行命令:/opt/scripts/backup.sh
# Crontab:0 2 * * * *(每天凌晨 2 点执行)
# 执行节点:node1, node2
# 超时时间:300 秒
# 失败重试:3 次创建 HTTP 任务
bash
# 任务名称:健康检查
# 任务类型:HTTP
# 请求 URL:https://api.example.com/health
# 请求方法:GET
# Crontab:0 */5 * * * *(每 5 分钟执行一次)
# 超时时间:30 秒配置任务依赖
text
任务 A:数据同步
↓
任务 B:数据处理(依赖任务 A)
↓
任务 C:生成报表(依赖任务 B)v1.6 版本更新
- 优化整体界面样式与布局,包括界面色系、列表、详情、按钮组、分页等
- 调整权限等级,增加超级管理员角色
- 任务详情页增加快捷选择 crontab 按钮组
- 任务详情页支持更改任务状态
- 任务列表支持标签、命令搜索
与 Linux crontab 对比
| 功能 | Linux crontab | gocron |
|---|---|---|
| 管理方式 | 命令行编辑文件 | Web 界面 |
| 精确度 | 分钟级 | 秒级 |
| 失败处理 | 需自行实现 | 内置重试机制 |
| 日志查看 | 需配置日志文件 | 内置日志查看 |
| 多节点 | 不支持 | 支持 |
| 任务依赖 | 不支持 | 支持 |
| 通知功能 | 需自行配置 | 内置多种通知 |
| 权限控制 | 系统级 | 应用级 |
注意事项
- 首次登录后建议修改默认密码
- 生产环境建议配置 HTTPS
- 定期备份数据库数据
- 任务执行节点需要保持与调度器的网络连通
- 任务超时时间需根据实际业务合理设置
项目链接
分享: