首先感谢论坛提供这样一个交流和分享的平台,让个人开发者有机会介绍自己的开源项目,也能听到更多真实的使用反馈和建议。
大家好,向大家自荐一个我持续维护了近一年的开源项目:gocron。
gocron 是一个使用 Go 开发的轻量级分布式定时任务集中调度和管理系统,主要用于替代 Linux crontab,解决定时任务分散在不同服务器上、不方便统一管理的问题。
为什么做这个项目
当服务器和定时任务逐渐增多后,传统 crontab 在任务管理、执行记录、失败重试、消息通知、权限控制和多节点维护等方面会变得不太方便。
因此,我想做一个部署相对简单、功能实用,又不强制依赖大量外部基础设施的任务调度系统。项目开源至今已经接近一年,目前没有商业化计划,主要是利用业余时间持续开发和维护,纯属为爱发电。
项目采用 MIT 协议,大家可以自由使用、修改和二次开发。
功能特点
目前 gocron 提供以下功能:
- Web 界面管理:直观的定时任务管理界面
- 秒级定时:支持 Crontab 时间表达式,精确到秒
- 高可用:基于数据库锁的 Leader 选举,秒级自动故障转移
- 任务重试:支持任务执行失败重试设置
- 任务依赖:支持配置任务依赖关系
- 多用户权限:完善的用户和权限控制
- 双因素认证:支持 2FA,提升系统安全性
- Agent 自动注册:支持 Linux/macOS 一键安装注册
- MCP 支持:AI 客户端(Claude Desktop、Cursor 等)可通过 Model Context Protocol 远程管理任务,使用 Web 端管理的访问令牌鉴权
- AI 辅助:自然语言转 cron 表达式、失败日志 AI 诊断、产品内 AI 运维助手对话(查询任务/日志/节点/模板、诊断失败),对接任意 OpenAI 兼容模型(接入地址可配置,亦支持自建/本地模型)
- 多数据库支持:MySQL / PostgreSQL / SQLite
- 容器内存感知:自动根据容器 cgroup 内存上限设置
GOMEMLIMIT,减少 Docker/Kubernetes 下被 OOM kill - 任务实时输出:Shell(RPC)任务运行期间可在 Execution Output 弹窗实时查看 stdout/stderr,支持断线续传和节点确认的停止操作
- 日志管理:完整的任务执行日志,支持自动清理;实时输出经过脱敏、大小限制,并针对 MySQL / PostgreSQL / SQLite 高效持久化
- 消息通知:支持邮件、Slack、Webhook 等多种通知方式