ByteNoteByteNote

字节笔记本

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 web

Docker 安装

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

快速开始

  1. 启动服务

    bash
    ./gocron web
  2. 访问 Web 界面 打开浏览器访问 http://localhost:5920

  3. 默认登录

    • 用户名:admin
    • 密码:admin
  4. 创建任务

    • 进入任务列表页面
    • 点击新建任务
    • 选择任务类型(Shell 或 HTTP)
    • 配置 crontab 表达式
    • 设置执行节点和通知方式
  5. 查看日志

    • 在任务列表点击日志按钮
    • 查看任务执行历史和输出结果

使用示例

创建 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 crontabgocron
管理方式命令行编辑文件Web 界面
精确度分钟级秒级
失败处理需自行实现内置重试机制
日志查看需配置日志文件内置日志查看
多节点不支持支持
任务依赖不支持支持
通知功能需自行配置内置多种通知
权限控制系统级应用级

注意事项

  • 首次登录后建议修改默认密码
  • 生产环境建议配置 HTTPS
  • 定期备份数据库数据
  • 任务执行节点需要保持与调度器的网络连通
  • 任务超时时间需根据实际业务合理设置

项目链接

分享: