2995840376
56a40edd8e
fix(G): 设备控制指令业务异常降噪, 避免定时场景刷爆错误日志
问题:定时场景(SceneCronScheduler, 如 bb 场景)每分钟执行 7 条规则并向涂鸦设备下发控制指令,
而设备归属用户尚未绑定涂鸦账号,每次下发都抛 BusinessException,并以 ERROR + 完整堆栈记录,
单日产生上千条错误日志,掩盖真实故障。
改动(iot-device DeviceCommandListener):
- 区分业务可预期异常与系统异常:
BusinessException(如"请先在个人中心绑定涂鸦账号")改为 WARN 单行输出,不再打印堆栈
- 新增 60 秒日志抑制窗口:同一 deviceId 在窗口内只详细记录一次,其余静默累计;
下一个窗口首次记录时汇总上一周期被抑制的次数,避免高频场景刷屏
- 系统异常保留 ERROR + 堆栈(窗口内首次),同样受窗口抑制保护
生产验证:重启后日志变为 WARN「设备控制指令业务异常: 请先在个人中心绑定涂鸦账号(上一周期同类异常已抑制 N 次)」,
不再输出堆栈;RabbitMQ 队列深度为 0;4 个服务 active。