定时任务扫描问题修复增量测试计划
status: complete
version: V10
created: 2026-07-21
baseline: V9 Job 48/48、Flow Client 6/6、前端 25/25、Admin/Flow 聚合构建成功
1. 本轮差异
- 内部执行器增加显式启用和专用服务 Token,RPC 改走
SecureOutboundClient/JOB_RPC。
- 日志清理保护非终态和有效幂等记录,启动时恢复悬挂执行。
- 配置同步增加任务级串行和版本条件,ONCE Misfire 与并行失败统计补齐顺序语义。
- Flow 5xx/解析失败进入 businessKey 恢复,监控和前端补齐 ACCEPTED/FLOW/权限状态。
2. P0 验证
| 编号 |
场景 |
预期 |
| P0-01 |
执行器认证 |
端点默认关闭;无效 Bearer 不能获取或执行 Handler |
| P0-02 |
RPC 结果协议 |
仅 HTTP 2xx 且 RespInfo.code=200 算成功 |
| P0-03 |
RPC 出站安全 |
只走 JOB_RPC 受控客户端,目标必须命中独立白名单 |
| P0-04 |
清理竞态 |
RUNNING、ACCEPTED、有效幂等引用不会被物理删除 |
| P0-05 |
同步一致性 |
旧版本不能覆盖新版本,逻辑删除后不能复活 Quartz Job |
| P0-06 |
Flow 状态未知 |
5xx/解析失败按 businessKey 恢复且不重复启动流程 |
3. P1 验证
| 编号 |
场景 |
预期 |
| P1-01 |
崩溃恢复 |
超时 RUNNING/ACCEPTED 在启动时幂等终结为 FAILED |
| P1-02 |
ONCE Misfire |
past + DO_NOTHING 进入已结束且不创建活跃 Trigger |
| P1-03 |
并行统计 |
旧执行晚完成不能覆盖较新连续失败语义 |
| P1-04 |
监控闭合 |
total 等于 success/failed/running/skipped/accepted 之和 |
| P1-05 |
前端显示 |
FLOW 标签使用 invokeMode;无路由权限不展示流程历史入口 |
| P1-06 |
兼容性 |
BEAN/HANDLER、Open API、Flow 编排和日志查询既有测试无回归 |
4. 计划命令
cd forge-server
mvn -pl forge-framework/forge-starter-parent/forge-starter-outbound \
-Penable-tests -Dforge.test.groups= test
mvn -pl forge-framework/forge-plugin-parent/forge-plugin-job \
-Penable-tests -Dforge.test.groups= test
mvn -pl forge-flow/forge-flow-client \
-Penable-tests -Dforge.test.groups= -Dtest=RemoteJobFlowExecutorTest test
mvn -pl forge-admin-server -am package -DskipTests
cd forge-admin-ui
source ~/.nvm/nvm.sh
nvm use v20.19.0
pnpm exec vitest run src/views/system/job-config/__tests__ src/views/system/__tests__
NODE_OPTIONS=--max-old-space-size=8192 pnpm build
5. 静态门禁
rg -n '\$\{[^}]+\}' forge-server/db/migration
rg -n 'HttpRequest|HttpClient|RestTemplate|WebClient|openConnection' \
forge-server/forge-framework/forge-plugin-parent/forge-plugin-job/src/main/java
xmllint --noout <changed-mapper-xml>
git diff --check
6. 跳过项
- 不自动启动真实 MySQL、Redis、Admin、Flow、Vite 或远程执行器服务。
- 真实 Flyway、JOB_RPC 私网白名单、服务 Token、Quartz 集群竞态、登录态 UI 和真实流程 E2E 由用户侧环境验收。
- 不清理或回退 V1-V9 未提交成果,不自动 Push。
7. 执行结果
| 验证项 |
结果 |
| Job 全模块测试 |
178/178 通过 |
| Outbound 全模块测试 |
48/48 通过 |
| Remote Flow Client |
9/9 通过 |
| 定时任务前端测试 |
29/29 通过 |
| Admin / Flow 聚合构建 |
43/43、32/32 模块通过 |
| 前端生产构建 |
通过,保留仓库既有构建警告 |
| 静态门禁 |
全部通过 |
P0/P1 自动化覆盖项全部通过;真实环境项仍按第 6 节执行人工验收。