yeg
4 天以前 46634e427fdd43e80c017938d1aa35f25a3166ac
refs
用户 yeg <1347747024@qq.com>
星期日, 十月 11, 2026 02:33 +0800
提交者 yeg <1347747024@qq.com>
星期日, 十月 11, 2026 02:33 +0800
提交46634e427fdd43e80c017938d1aa35f25a3166ac
目录 d38939ffdd1a8adbbd94e1a18e0e3c8e937ef0c6 目录 | zip | gz
parent 09e7ea0d2270acdedc37ab4338834a0c35da0611 查看 | 对比
实时推送失败不再交给 MVC 异常分发,测试被删时只结束连接

线上现象:订阅了某个已删除测试的实时页,每 3 秒刷一屏三类 ERROR。
链路是 sendAll → live.current 抛 ServiceException("测试不存在") → emitter.completeWithError
→ Spring 把异常送去全局异常处理器 → 响应头已是 text/event-stream、写不出 AjaxResult JSON
→ HttpMessageNotWritableException,再叠一层安全链 Access Denied。

- SSE 路径上任何失败都只 complete() 并记一条 warn(不带堆栈):这条路上没有 JSON 可写,
而测试被删除(ADR-0047 允许物理删除)本来就是订阅的终点,不是服务端故障。
- 首帧就失败时不排推送任务(连接已结束)。
- 新增 TestLiveStreamTest 钉住行为:结束方式是 complete,绝不 completeWithError。

ruoyi-admin 250 项通过,后端全量 BUILD SUCCESS。
1个文件已添加
1个文件已修改
127 ■■■■■ 已修改文件
ruoyi-admin/src/main/java/com/battery/business/web/TestLiveStream.java 50 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/test/java/com/battery/business/web/TestLiveStreamTest.java 77 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史