d6f8368493241a5935f645538cc0ea8b6b903ce0
用户要求「maixiang异常也要发通知」,确认范围(卡住/失败/队列堆积/服务不可用)与 受众(只发管理员)后实现: - MaixiangConsoleClient:18960 后台只读接口客户端(batch/tasks、tasks、queue/status、 batch/detail),token 鉴权、失败只记日志。URL 必须用 URI 对象提交——字符串形态会被 RestClient 二次编码(%20→%2520),end_time 参数实测报 Incorrect DATETIME value, 检查会静默失效;已加回归单测 buildUrlEncodesTimeParameterExactlyOnce - MaixiangAnomalyScanner 五类检查:①批量任务停滞(status 0/1 超时无更新,默认 60 分钟) ②单任务滞留(创建超 30 分钟未完成)③近 30 分钟失败达最小条数 ④批量任务空结果 (worker 报错时批次仍被标"已完成",是唯一可抓的批量失败信号)⑤队列积压(pending≥300 / processing≥100);去重按天/小时/任务,全部为管理员全局事件(subjectUserId=null) - 接入 NotificationScanScheduler(分布式锁内同跑);scene=maixiang_anomaly; AIIMAGE_NOTIFICATION_MAIXIANG_* 环境变量可调,令牌留空=跳过 - 前端 NotificationScene 类型补 maixiang_anomaly(铃铛不按 scene 渲染,无运行时改动) - 测试:客户端解析(真实抓包样例)+ 扫描器 14 例 + 手工联调探针 MaixiangLiveProbeTest (-Dmaixiang.live=true 开启,只读不写通知) 已部署双节点(.env 加 console token、JAR cd3e06c4)并线上验证:首扫推 2×15 条管理员通知 (3 个变体任务停滞 / 39 个跟价任务滞留),二次扫描落库=0 去重生效。
Description
No description provided
Languages
Java
70.5%
TypeScript
16.8%
Vue
11.9%
Python
0.5%
JavaScript
0.2%
Other
0.1%