# springboot-quartz **Repository Path**: skchen1314/springboot-quartz ## Basic Information - **Project Name**: springboot-quartz - **Description**: springboot quartz 多模块脚手架 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: https://gitee.com/skchen1314/springboot-quartz - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-05 - **Last Updated**: 2025-09-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SpringBoot Quartz Project 这是一个基于Spring Boot和Quartz的完整定时任务管理项目,提供了定时任务的CRUD、执行、暂停、恢复等功能,适合作为企业级定时任务系统的基础框架。 ## 技术架构 ### 核心技术栈 - **后端框架**:Spring Boot 2.x - **任务调度**:Quartz 2.x - **ORM框架**:MyBatis-Plus - **数据库**:MySQL 8.0 - **API文档**:Swagger/OpenAPI - **前端技术**:Vue.js, Element UI - **项目构建**:Maven ### 架构设计 - 采用经典的MVC分层架构 - 基于Quartz实现分布式任务调度 - 任务信息持久化到MySQL数据库 - 前后端分离的开发模式 - RESTful API设计风格 ## 核心知识点 1. **Quartz核心概念** - Job:任务执行逻辑 - JobDetail:任务定义 - Trigger:触发条件 - Scheduler:任务调度器 2. **Spring Boot整合Quartz** - 自动配置原理 - 自定义JobFactory实现依赖注入 - 任务持久化配置 3. **任务管理功能** - 动态添加、修改、删除定时任务 - 任务的立即执行、暂停、恢复操作 - 任务执行日志记录与查询 4. **分布式任务处理** - 集群环境下的任务并发控制 - 任务执行状态一致性保证 5. **安全与权限** - 基于Spring Security的认证授权 - 接口访问控制 ## 使用方式 ### 环境要求 - JDK 1.8+ - MySQL 8.0 - Maven 3.5+ - Node.js 12+ (前端构建) ### 部署步骤 1. **克隆项目** ```bash git clone https://gitee.com/skchen1314/complete-springboot-quartz-project.git cd complete-springboot-quartz-project ``` 2. **配置数据库** - 创建数据库:`quartz_job` - 导入SQL脚本:`sql/quartz_job.sql` - 修改配置文件:`application.yml` 中的数据库连接信息 3. **后端启动** ```bash # 编译打包 mvn clean package -Dmaven.test.skip=true # 运行 java -jar target/quartz-project-1.0.0.jar ``` 4. **前端启动** ```bash # 进入前端目录 cd src/main/frontend # 安装依赖 npm install # 启动开发环境 npm run dev ``` 5. **访问系统** - 后端API:http://localhost:8080 - 前端页面:http://localhost:8081 - Swagger文档:http://localhost:8080/swagger-ui.html ## 功能说明 1. **任务管理** - 任务列表展示,支持分页、搜索 - 新增定时任务(支持Cron表达式) - 编辑现有任务 - 删除任务 - 立即执行一次任务 - 暂停/恢复任务 2. **任务日志** - 查看任务执行历史 - 查看任务执行结果和异常信息 3. **用户管理** - 基于角色的权限控制 - 用户信息管理 ## 注意事项 1. **Quartz配置** - 集群环境下需确保所有节点使用相同的quartz配置 - 生产环境中建议调整线程池大小以适应实际需求 2. **数据库** - 必须使用InnoDB存储引擎以支持事务 - 定期清理任务执行日志,避免表过大影响性能 3. **任务开发** - 自定义Job类需继承`BaseJob` - 任务执行时间不宜过长,避免阻塞线程池 - 耗时任务建议异步处理 4. **分布式环境** - 确保所有节点的系统时间一致 - 任务类需在所有节点上都存在,否则可能导致执行失败 5. **安全问题** - 生产环境中应禁用Swagger文档 - 定期更换管理员密码 - 配置HTTPS确保传输安全 6. **性能优化** - 大量任务时建议调整Quartz表的索引 - 考虑任务执行日志的归档策略 ## 扩展建议 1. 可以集成Elasticsearch实现任务日志的高效检索 2. 增加任务执行告警功能(邮件、短信等) 3. 实现任务的分片执行,提高处理大量数据的能力 4. 增加任务依赖关系管理,支持复杂的工作流场景 如需进一步定制或有任何问题,请参考项目源码或提交issue。