8e7631987f6cbe6643101a4bba5b1507cc415e7c
B8 规则链全量缓存 + Redis Pub/Sub + 版本拉模式兜底: - CompiledRuleChainFactory:IotRuleChainGraphVO→CompiledRuleChain - RuleChainCache(@PostConstruct loadAll + evict + reload + B48 钩子) · TenantUtils.executeIgnore 跨租户全量加载;TenantUtils.execute 逐租户切换 · ConcurrentHashMap.compute 保证 reload 串行(避免并发 DB 查询) · 超 500 条规则链打 WARN 日志 - RuleChainCacheListener:Redis Pub/Sub 订阅 iot:rule:cache:evict,收到后 evict+reload - RuleChainVersionChecker:5 分钟拉模式兜底,version drift 时 reload + metric - RuleChainCacheConfiguration:@EnableScheduling + RedisMessageListenerContainer - IotRuleChainMapper 新增 selectAllEnabledTenantIds()(跨租户查询) - IotRuleChainServiceImpl.updateRuleChain 末尾发布 Pub/Sub 驱逐事件 - 5 单元测试全绿(含 version drift 检测 + 容量告警) B13 AlarmHistory 时序表 DAO 双实现: - AlarmHistoryDO(时序对象:ts/device/severity/ack/clear/archived/eventType 等) - IotTsDbAlarmHistoryDao 接口(insert/queryByAlarmRecord/queryLatestByDevice) - CtsdbAlarmHistoryDaoImpl(CTSDB/InfluxDB 协议,@ConditionalOnProperty) - TdengineAlarmHistoryDaoImpl(TDengine JDBC,@ConditionalOnProperty) - IotAlarmHistoryService(协调 TSDB 写;异步 @Async;写失败不影响主流程) - TsDbAutoConfiguration 注册 IotAlarmHistoryService - 5 单元测试全绿(含 TSDB 失败降级 + 异步写验证) 测试总计:rule 模块 164/164 ✓,server 模块 B13 5/5 ✓ Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Description
Languages
Java
80.2%
PLpgSQL
12.7%
TSQL
6.7%
Python
0.2%