status: complete created: 2026-07-19 complexity: 🟡中等 parent: code-copilot/changes/定时任务优化/spec.md version: V1 ui-baseline: code-copilot/changes/定时任务优化/ui-reference.md
本版本只修复现有 Cron 调度中心的正确性和安全缺陷,不增加一次性任务、独立时区、并发策略、告警、开放 API 或流程编排。
完成后应满足:
| 表 | 字段/索引 | 说明 |
|---|---|---|
| sys_job_config | sync_status、sync_error、sync_time、version | 最小同步可见性和乐观锁 |
| sys_job_config | idx_job_sync_status_del | 同步失败查询 |
| sys_job_log | job_config_id、trigger_type | 稳定关联任务并区分计划/手动 |
| sys_job_log | idx_job_log_config_trigger | 任务日志查询 |
迁移必须保持既有 0/1 状态语义,并使用 information_schema 或 NOT EXISTS 防重复。
| 接口 | 变更 |
|---|---|
| GET /job/config/page | 使用 Query/VO,返回同步状态 |
| GET /job/config/:id | 返回 VO |
| POST/PUT /job/config | 使用 SaveRequest 和服务端校验 |
| POST /job/config/:id/sync | 手动重试数据库到 Quartz 同步 |
| GET /job/log/page | 支持任务、状态和时间范围筛选 |
| Task | 状态 | 实际改动文件 | 备注 |
|---|---|---|---|
| Proposal | complete | spec.md、tasks.md | 从原单体方案拆出 |
| Implementation | complete | Task 1-7 已完成 | V1 代码、静态检查、模块测试和聚合构建完成 |
| Task 1 最小数据库迁移 | complete | V1.0.40 迁移、迁移契约测试、测试依赖 | 契约测试 7/7 通过,占位符扫描与 diff 检查通过 |
| Task 2 协议、校验和 XML 查询 | complete | DTO/VO、校验器、实体字段、Mapper/XML、分页接口 | job 模块测试 16/16 通过,XML 与格式检查通过 |
| Task 3 Quartz 异常和幂等同步 | complete | JobScheduler、JobScheduleCoordinator、Service/Controller 写链路 | job 模块测试 21/21 通过,调度失败状态可见且可重试 |
| Task 4 启动恢复和注解登记 | complete | JobAutoRegistrar、JobStartupReconciler、删除旧 JobConfigLoader、恢复契约测试 | job 模块测试 26/26 通过,缺失任务可恢复且不清理非 Forge Job |
| Task 5 日志筛选和安全裁剪 | complete | JobLogSanitizer、JobMonitor、QuartzJobExecutor、日志读取清洗、时间筛选格式 | job 模块测试 33/33 通过,前端定向 ESLint、XML 和格式检查通过 |
| Task 6 Controller 和前端同步状态 | complete | 同步重试接口、保存失败提示、任务列表信息架构和同步操作入口 | job 模块测试 35/35、前端定向 ESLint 和生产构建通过;真实数据 UI 联调留待开发环境 |
| Task 7 回归验证 | complete | 手动触发同步门禁、最终模块/聚合/前端回归、文档收尾 | job 测试 37/37、Admin 42/42、前端构建通过;浏览器联调受沙箱端口权限阻断 |