spec.md 5.1 KB

定时任务运维日志监控

status: complete created: 2026-07-19 completed: 2026-07-20 complexity: 🟡中等 parent: code-copilot/changes/定时任务优化/spec.md version: V5 revision: V5.1 complete dependency: 定时任务可靠性加固、定时任务并发重试治理 ui-baseline: code-copilot/changes/定时任务优化/ui-reference.md

1. 目标

在执行生命周期稳定后补齐日志查询、详情、导出、留存和轻量运维摘要。本版本不发送告警,也不改造权限模型。

2. 功能范围

  • 日志支持任务、分组、执行状态、触发来源和时间范围筛选。
  • 日志详情展示受控结果和异常摘要,不返回任务参数中的敏感字段。
  • 日志导出复用系统导出配置,排除任务参数、完整结果和完整异常。
  • 任务详情展示最近执行记录、上次状态、下一次触发和连续失败数。
  • 监控接口返回近 24 小时执行量、成功率、失败率、跳过量和连续失败任务。
  • 日志留存继续使用索引和专用物理清理,不修改 MySQL 分区。
  • 前端完成组合筛选、详情、导出和轻量摘要。

3. 明确不做

  • 不发送站内信、邮件或 Webhook。
  • 不移除当前超级管理员控制边界。
  • 不增加资源权限、角色模板或操作审计。
  • 不建设复杂 BI 大盘或实时流式监控。

4. 数据变更

  • sys_job_config 增加 consecutive_failures。
  • 为 sys_job_log 增加状态/来源/时间组合索引。
  • 创建 sys_job_log_export 导出配置,显式排除敏感字段。
  • 不增加告警渠道、收件人或 Webhook 字段。

5. 接口

接口 说明
GET /job/log/page 组合筛选
GET /job/log/:id 安全详情
POST /job/log/export 按系统导出配置导出
GET /job/config/:id/overview 任务执行摘要
GET /job/monitor/summary 近 24 小时轻量监控

6. 验收标准

  • 前端时间范围与 Mapper XML SQL 条件一致。
  • 导出文件不包含 jobParam、完整 result 或 exceptionMsg。
  • 任务概览和 24 小时摘要与日志聚合结果一致。
  • 留存清理只物理删除超期日志,不影响任务配置。

7. 确认门禁

  • 确认本版本只做运维可观测性,不发送失败告警。
  • 确认没有容量证据前不修改历史表分区。

8. 实施结果

  • 迁移 V1.0.44__add_job_log_observability.sql 增加连续失败计数、日志组合索引、触发来源字典和安全导出配置,并完成存量计数回填。
  • 日志列表、详情和导出分别使用 JobLogVOJobLogDetailVOJobLogExportVO,不向前端或导出文件暴露 jobParam、完整 resultexceptionMsg
  • 连续失败计数遵循 FAILED 递增、SUCCESS 清零、SKIPPED 不变,且只在日志终态更新成功后变更。
  • 增加任务概览和近 24 小时监控接口;前端完成组合筛选、详情弹窗、安全导出、最近执行记录和监控摘要。
  • 日志留存仍使用专用物理清理 SQL,并明确排除运行中日志;未增加告警、权限、Webhook 或数据库分区能力。

9. 验收结论

  • V5 定向后端测试 15/15、Job 模块 94/94、前端定向测试 16/16、Admin Reactor 42/42 均通过。
  • Mapper XML、Flyway placeholder、冲突标记、定向 ESLint、前端生产构建和 git diff --check 通过。
  • 生产预览入口在桌面和窄屏均返回 200,未发现脚本异常或静态资源失败;因本轮按边界未启动 MySQL、Redis 和 Admin,应用停在初始化加载态,未执行已登录任务页和真实接口联调。
  • 开发环境仍需验收 Flyway 实跑、鉴权接口数据、导出文件内容和真实聚合结果;这些环境项不扩展 V5 的实现范围。

10. V5.1 运行日志界面优化

  • 保持现有日志查询、详情、导出、权限和后端协议不变,只调整前端信息架构与样式。
  • 单任务概览收敛为任务身份、最近状态、下次执行、连续失败和最近执行序列,不重复堆叠标题卡片。
  • 筛选与执行记录合并为一个稳定工作区;主列表移除执行器、结束时间等技术字段,默认聚焦任务、状态与来源、开始时间、耗时和重试。
  • 支持点击有权限的日志行查看详情;详情从居中大弹窗改为右侧抽屉,按执行概览、时间线、结果/异常摘要和技术信息分层。
  • 技术字段默认折叠;桌面与窄屏均不得出现操作遮挡、关键状态截断或不必要的横向滚动。

实施结论

  • 日志筛选和数据表已合并为单一记录工作区;单任务上下文隐藏重复任务列,主列表只保留状态/来源、开始时间、耗时、重试和详情入口。
  • 日志行在具备详情权限时支持鼠标和键盘进入详情;开始时间按开始、触发、计划时间顺序回退。
  • 详情已改为右侧抽屉,结果/异常保持安全摘要,执行器、执行实例和流程实例移入默认折叠的技术信息。
  • 目标 Vitest 5/5、目标 ESLint、前端生产构建和静态空白检查通过;浏览器自动化因当前沙箱禁止 Chromium MachPort 注册而未执行真实截图验收。