一个现代化的分布式任务调度和管理系统,基于 Go 语言开发,提供 Web 界面和 API 接口。
- 🚀 高性能: 基于 Go 语言开发,支持高并发任务调度
- 🎯 多协议支持: 提供 HTTP REST API 和 gRPC 接口
- 🖥️ 现代化 UI: 基于 Vue 3 + Element Plus 的响应式 Web 界面
- 📊 实时监控: 集成 Prometheus + Grafana 监控体系
- 🔐 权限管理: 完整的用户认证和权限控制系统
- 🔄 任务调度: 灵活的 Cron 表达式支持
- 💾 数据持久化: MySQL 数据库 + Redis 缓存
- 🐳 容器化部署: 完整的 Docker 和 Docker Compose 支持
- 🤖 AI 集成: 支持 MCP (Model Context Protocol) 智能调度
go-job/
├── api/ # API 层
│ ├── grpc/ # gRPC 接口定义
│ └── http/ # HTTP REST API
├── internal/ # 内部业务逻辑
│ ├── auth/ # 认证服务
│ ├── job/ # 任务管理
│ ├── scheduler/ # 调度器
│ ├── mcp/ # MCP AI 调度
│ └── ...
├── pkg/ # 公共包
│ ├── database/ # 数据库连接
│ ├── redis/ # Redis 客户端
│ ├── auth/ # JWT 认证
│ └── ...
├── web/ # Vue.js 前端
├── configs/ # 配置文件
└── scripts/ # 部署脚本
- Go 1.23+
- Node.js 18+
- Docker & Docker Compose (可选)
- MySQL 8.0+
- Redis 7+
- 克隆项目
git clone <repository-url>
cd go-job- 启动所有服务
make docker
# 或者
docker-compose up -d- 访问应用
- Web 界面: http://localhost:8080
- API 文档: http://localhost:8080/api/docs
- Grafana 监控: http://localhost:3000 (admin/admin)
- Prometheus: http://localhost:9090
- 安装依赖
# 后端依赖
make deps
# 前端依赖
cd web
npm install- 配置数据库
# 创建数据库
mysql -u root -p < scripts/init.sql- 启动 Redis
redis-server- 启动后端服务
make dev- 启动前端服务
cd web
npm run dev# 构建和运行
make build # 编译应用
make run # 运行应用
make dev # 开发模式运行
# Docker 相关
make docker # 构建并启动 Docker 容器
make docker-build # 构建 Docker 镜像
make docker-up # 启动 Docker 容器
make docker-down # 停止 Docker 容器
# 开发工具
make test # 运行测试
make lint # 代码检查
make fmt # 格式化代码
make proto # 生成 protobuf 文件
make clean # 清理构建文件主要配置文件位于 configs/config.yaml:
server:
port: 8080
grpc_port: 9090
database:
host: localhost
port: 3306
username: go_job
password: password
database: go_job
redis:
addr: localhost:6379
password: ""
db: 0
auth:
jwt_secret: "your-secret-key"
expire_hours: 24GET /api/jobs- 获取任务列表POST /api/jobs- 创建新任务PUT /api/jobs/:id- 更新任务DELETE /api/jobs/:id- 删除任务POST /api/jobs/:id/execute- 手动执行任务
gRPC 服务定义在 api/grpc/job.proto,支持:
- 任务 CRUD 操作
- 实时任务状态订阅
- 批量操作接口
- 仪表板: 系统概览和实时统计
- 任务管理: 任务的创建、编辑、删除和执行
- 执行历史: 任务执行记录和日志查看
- 工作节点: 分布式工作节点管理
- 用户管理: 用户和权限管理
- 系统监控: 性能指标和告警
系统支持基于 JWT 的认证机制:
- 用户登录获取 JWT Token
- 权限控制基于角色和资源
- 会话管理支持 Token 刷新
默认管理员账号:
- 用户名:
admin - 密码:
admin123
系统暴露以下关键指标:
job_execution_total- 任务执行总数job_execution_duration- 任务执行时长job_queue_size- 任务队列长度worker_active_count- 活跃工作节点数
预配置的 Grafana 仪表板包含:
- 系统整体性能概览
- 任务执行统计图表
- 错误率和延迟监控
- 资源使用情况
集成 MCP (Model Context Protocol) 支持:
- 智能任务分析: AI 分析任务特征和历史数据
- 动态调度优化: 基于系统负载智能调整调度策略
- 异常检测: 自动识别和处理异常任务
- 性能预测: 预测任务执行时间和资源需求
启用 MCP 功能需要配置 AI 服务端点。
- 在
internal/job/中定义任务逻辑 - 更新
api/grpc/job.proto接口定义 - 实现对应的 HTTP API 处理器
- 添加前端界面支持
- 在相应服务中定义 Prometheus 指标
- 更新 Grafana 仪表板配置
- 添加告警规则 (如需要)
- 在
internal/permission/中定义权限逻辑 - 更新 JWT 中间件
- 前端添加权限检查
-
数据库连接失败
- 检查 MySQL 服务状态
- 验证配置文件中的数据库连接信息
-
Redis 连接失败
- 确认 Redis 服务运行
- 检查网络连接和防火墙设置
-
前端访问 404
- 确认后端服务正常启动
- 检查 Nginx 代理配置
-
gRPC 连接超时
- 验证防火墙规则
- 检查 gRPC 端口配置
# 查看应用日志
docker-compose logs go-job
# 查看数据库日志
docker-compose logs mysql
# 查看 Redis 日志
docker-compose logs redis- Fork 本项目
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 创建 Pull Request
本项目采用 MIT 许可证。查看 LICENSE 文件了解更多信息。
如果您遇到问题或有建议,请通过以下方式联系:
- 创建 Issue
- 发送邮件至: [your-email@example.com]
- 加入讨论群: [群号或链接]
感谢使用 Go-Job! 🎉