[M-AI-01-02] 审计 Worker 执行依赖闭包与进程内事件依赖 #246

Closed
opened 2026-06-19 20:06:04 +08:00 by wangdl · 1 comment
Owner

背景

在移动 Processor 前,必须确认每个 Worker 的完整依赖、Subscriber 和副作用,防止 Processor 移到独立进程后链路断裂。

目标

审计全部 5 个 Processor 的:注入的 Service、依赖 Module、写入的表、发布的事件、事件 Subscriber、移动后可能断裂的链路。

重点确认:

  • ai.analysis.completed 事件能否跨进程到达 ReviewCardSubscriber
  • AuditLogProcessor 和 FileCleanupProcessor 如何拆出
  • Domain Events 队列为何没有消费者
  • 哪些 Module 同时包含 Controller、Producer 和 Processor

非目标

  • 不修改代码
  • 不修复 Domain Events
  • 不改变事件实现

风险等级:P0

依赖:#245

建议执行顺序:2

验收标准

  • 输出完整依赖矩阵文档
  • 所有结论附文件路径、Module、Provider、方法名、行号
  • 标记断裂链路(EventBus 跨进程、FocusItemsService 缺失等)
  • 无法确认的标记为"无法确认"
## 背景 在移动 Processor 前,必须确认每个 Worker 的完整依赖、Subscriber 和副作用,防止 Processor 移到独立进程后链路断裂。 ## 目标 审计全部 5 个 Processor 的:注入的 Service、依赖 Module、写入的表、发布的事件、事件 Subscriber、移动后可能断裂的链路。 重点确认: - `ai.analysis.completed` 事件能否跨进程到达 ReviewCardSubscriber - AuditLogProcessor 和 FileCleanupProcessor 如何拆出 - Domain Events 队列为何没有消费者 - 哪些 Module 同时包含 Controller、Producer 和 Processor ## 非目标 - 不修改代码 - 不修复 Domain Events - 不改变事件实现 ## 风险等级:P0 ## 依赖:#245 ## 建议执行顺序:2 ## 验收标准 - [ ] 输出完整依赖矩阵文档 - [ ] 所有结论附文件路径、Module、Provider、方法名、行号 - [ ] 标记断裂链路(EventBus 跨进程、FocusItemsService 缺失等) - [ ] 无法确认的标记为"无法确认"
wangdl added this to the M-AI-01 Worker 进程边界与部署收口 milestone 2026-06-19 20:06:04 +08:00
Author
Owner

开发完成评论

完成内容

  • 产出 ADR-001 附录 A:Worker 执行依赖闭包完整审计
  • 覆盖全部 5 个 Processor 的依赖矩阵(注入 Service、依赖 Module、写入的表、发布的事件、订阅者)
  • 事件链路审计(EventBusService 实现机制、3 个事件的使用情况、Domain Events 死队列分析)
  • Module 注册审计(3 个双重注册 Processor、2 个需拆分 Module)
  • WorkerModule 缺失依赖矩阵(FocusItemsModule、EventBusModule、ReviewModule)
  • 修复建议矩阵(供 M-AI-01-03 使用)
  • 无法确认项清单(Docker 拓扑、生产 systemd、NotificationsService 依赖链)

修改文件

  • docs/architecture/adr-001-appendix-a-worker-dependency-closure.md(随 ADR-001 在 commit 54bc505 入库)

代码证据

  • 一.1:AiAnalysisWorker 完整依赖矩阵 + 断裂链路 ai.analysis.completed 跨进程、FocusItemsService null
  • 一.4:AuditLogProcessor 在 AdminAuditLogModule 中与 Controller 共存(admin-audit-log.module.ts:13
  • 一.5:FileCleanupProcessor 导入但未在 providers 注册(files.module.ts:3,12-14
  • 二.1:EventBusService.publish() 进程内 EventEmitter2,不可跨进程(event-bus.service.ts:19-22
  • 二.4:移动后 ai.analysis.completed → ReviewCardSubscriber 断裂链路 ASCII 图
  • 三.1:3 个 Processor 在 AppModule + WorkerModule 双重注册(app.module.ts:193-195, worker.module.ts:62-66
  • 四:WorkerModule 缺失 3 个 Module 及影响分析
  • 五:修复建议矩阵(6 项,按优先级排列)
  • 六:3 项无法确认项及原因

测试情况

  • 已运行命令:无(纯文档 Issue,不修改代码)
  • 结果:N/A

未完成 / 风险

是否建议进入 Review

## 开发完成评论 ### 完成内容 - 产出 ADR-001 附录 A:Worker 执行依赖闭包完整审计 - 覆盖全部 5 个 Processor 的依赖矩阵(注入 Service、依赖 Module、写入的表、发布的事件、订阅者) - 事件链路审计(EventBusService 实现机制、3 个事件的使用情况、Domain Events 死队列分析) - Module 注册审计(3 个双重注册 Processor、2 个需拆分 Module) - WorkerModule 缺失依赖矩阵(FocusItemsModule、EventBusModule、ReviewModule) - 修复建议矩阵(供 M-AI-01-03 使用) - 无法确认项清单(Docker 拓扑、生产 systemd、NotificationsService 依赖链) ### 修改文件 - `docs/architecture/adr-001-appendix-a-worker-dependency-closure.md`(随 ADR-001 在 commit `54bc505` 入库) ### 代码证据 - 一.1:AiAnalysisWorker 完整依赖矩阵 + 断裂链路 `ai.analysis.completed` 跨进程、FocusItemsService null - 一.4:AuditLogProcessor 在 AdminAuditLogModule 中与 Controller 共存(`admin-audit-log.module.ts:13`) - 一.5:FileCleanupProcessor 导入但未在 providers 注册(`files.module.ts:3,12-14`) - 二.1:EventBusService.publish() 进程内 EventEmitter2,不可跨进程(`event-bus.service.ts:19-22`) - 二.4:移动后 `ai.analysis.completed` → ReviewCardSubscriber 断裂链路 ASCII 图 - 三.1:3 个 Processor 在 AppModule + WorkerModule 双重注册(`app.module.ts:193-195`, `worker.module.ts:62-66`) - 四:WorkerModule 缺失 3 个 Module 及影响分析 - 五:修复建议矩阵(6 项,按优先级排列) - 六:3 项无法确认项及原因 ### 测试情况 - 已运行命令:无(纯文档 Issue,不修改代码) - 结果:N/A ### 未完成 / 风险 - 无 ### 是否建议进入 Review - 是
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: wangdl/api-server#246
No description provided.