优化部署流程
This commit is contained in:
@@ -46,13 +46,10 @@
|
||||
|
||||
## 更新摘要
|
||||
**变更内容**
|
||||
- 新增分享代码仓储层(ShareCodeRepository),支持分享码日志管理与数据库操作
|
||||
- 增强曲线仓储层(CurveRepository),支持频响曲线数据查询与缓存合并
|
||||
- 新增分享码缓存层(ShareCodeCache),提供高级Redis缓存功能与Lua原子操作
|
||||
- 新增分享码持久化任务(ShareCodePersistTask),实现异步数据同步
|
||||
- 新增分享码处理器(ShareCodeHandler),支持完整的分享码生命周期管理
|
||||
- 扩展Handler层以支持分享码创建、查询、导入、导出和删除操作
|
||||
- 增强缓存策略,支持fr数据分离存储和分布式锁机制
|
||||
- OTA仓库层实现已移除pawVerCode、pawVerName、pawUrl、pawMd5字段,简化了查询逻辑
|
||||
- OTA模型结构已精简,移除了不必要的字段,提高了数据传输效率
|
||||
- OTA查询方法的SQL语句已优化,减少了字段选择和扫描操作
|
||||
- OTA表结构已更新,移除了相关字段定义
|
||||
|
||||
## 目录
|
||||
1. [简介](#简介)
|
||||
@@ -246,7 +243,7 @@ SHARE_LOG_TBL --> DB_SQL
|
||||
- **BrandRepository**:负责品牌列表查询,支持缓存感知的全量查询和按名称模糊过滤,返回 Brand 领域对象切片。
|
||||
- **ModelRepository**:负责型号列表查询,支持缓存感知的按品牌精确匹配、按型号名模糊匹配和全量查询,返回 Model 领域对象切片,并对可空字段进行 NullString 到指针字符串的安全转换。
|
||||
- **DeviceRepository**:负责设备信息管理,支持按MAC地址查询设备、插入新设备、更新设备版本信息,以及用户活跃信息的查询和更新。
|
||||
- **OTARepository**:负责固件升级信息查询,支持按型号、硬件版本、灰度标识查询最新OTA记录,黑名单检查、定向设备筛选等功能。
|
||||
- **OTARepository**:负责固件升级信息查询,支持按型号、硬件版本、灰度标识查询最新OTA记录,黑名单检查、定向设备筛选等功能。**已精简**:移除了pawVerCode、pawVerName、pawUrl、pawMd5字段,简化了查询逻辑和数据处理流程。
|
||||
- **CurveRepository**:负责频响曲线数据查询,支持按品牌+型号查询Model信息和按标签查询Target信息,为曲线缓存提供数据支撑。
|
||||
- **ShareCodeRepository**:负责分享码日志管理,支持插入分享码操作日志、查询导出日志等数据库操作,提供完整的分享码数据持久化能力。
|
||||
- **CurveCache**:新增的曲线缓存层,支持fr数据分离存储、分布式锁机制、缓存合并逻辑,优化曲线数据访问性能。
|
||||
@@ -526,6 +523,7 @@ DeviceRepository --> UserActive : "活跃信息"
|
||||
- 定向设备检查:检查设备是否在指定OTA的定向设备列表中
|
||||
- 可空字段处理:使用 sql.NullString 和 sql.NullTime 安全处理数据库可空字段
|
||||
- 复杂查询:支持子查询、条件筛选、时间范围检查等复杂业务逻辑
|
||||
- **已精简**:移除了pawVerCode、pawVerName、pawUrl、pawMd5字段,简化了查询逻辑和数据处理流程
|
||||
- **业务逻辑**:
|
||||
- 支持灰度发布(beta=1)和正式发布(beta=0)两种模式
|
||||
- 支持强制升级(force=1)和普通升级(force=0)
|
||||
@@ -550,16 +548,12 @@ class OTA {
|
||||
+string VerName
|
||||
+string URL
|
||||
+string MD5
|
||||
+int Force
|
||||
+BoolInt Force
|
||||
+*string Desc
|
||||
+*string Model
|
||||
+int HW
|
||||
+int Target
|
||||
+int Beta
|
||||
+int PawVerCode
|
||||
+string PawVerName
|
||||
+string PawURL
|
||||
+string PawMD5
|
||||
+BoolInt Target
|
||||
+BoolInt Beta
|
||||
+*time StartTime
|
||||
+*time EndTime
|
||||
+int Status
|
||||
@@ -1120,7 +1114,7 @@ MD_CACHE --> REDIS_CLIENT
|
||||
- BrandRepository:按名称模糊匹配,建议在 name 上建立合适索引;对大结果集引入分页。
|
||||
- ModelRepository:按品牌名精确匹配或按型号名模糊匹配,建议为 brand_name 与 name 建立索引;对大结果集引入分页。
|
||||
- DeviceRepository:user_device 表的 MAC 地址建立唯一索引,user_active 表建立复合索引(mac_addr, active_date)。
|
||||
- OTARepository:ota 表建立复合索引(model, hw, beta, status),black_list 表建立索引(ota_id, mac),ota_target_device 表建立索引(ota_id, mac_addr)。
|
||||
- OTARepository:ota 表建立复合索引(model, hw, beta, status),black_list 表建立索引(ota_id, mac),ota_target_device 表建立索引(ota_id, mac_addr)。**已优化**:移除了pawVerCode、pawVerName、pawUrl、pawMd5字段,减少了查询字段数量,提升了查询性能。
|
||||
- CurveRepository:model 表建立复合索引(brand_name, name),target 表建立索引(label)。
|
||||
- ShareCodeRepository:share_code_log 表建立索引(mac_addr, share_code, create_at)。
|
||||
- 应用层过滤:在缓存命中时进行过滤,减少数据库压力。
|
||||
@@ -1175,7 +1169,7 @@ MD_CACHE --> REDIS_CLIENT
|
||||
- 排查:检查设备持久化任务日志,确认Redis连接正常;验证user_device和user_active表结构;检查JSON数据格式;确认定时任务正常运行。
|
||||
- **OTA查询错误**
|
||||
- 现象:OTA升级查询返回错误或结果不符合预期。
|
||||
- 排查:检查OTA表数据完整性,确认status=1且有效时间范围内;验证黑名单和定向设备表数据;检查参数传递(model、hw、beta、mac)。
|
||||
- 排查:检查OTA表数据完整性,确认status=1且有效时间范围内;验证黑名单和定向设备表数据;检查参数传递(model、hw、beta、mac);**注意**:OTA查询已移除pawVerCode、pawVerName、pawUrl、pawMd5字段,确保查询逻辑正确。
|
||||
- **曲线查询错误**
|
||||
- 现象:曲线查询返回错误或结果不符合预期。
|
||||
- 排查:检查CurveRepository查询的Model和Target数据;确认EQ API可访问;验证Redis缓存键格式;检查分布式锁状态;确认fr数据分离存储正确。
|
||||
@@ -1225,7 +1219,11 @@ MD_CACHE --> REDIS_CLIENT
|
||||
- [internal/repository/share_code.go:20-58](file://internal/repository/share_code.go#L20-L58)
|
||||
|
||||
## 结论
|
||||
Luxsin 的数据访问层经过重构后,采用了更加完善的缓存感知查询逻辑,实现了多级缓存策略和智能数据刷新机制。新增的设备持久化仓库、OTA仓库、曲线仓库和分享码仓库进一步完善了数据访问层的功能,支持设备信息上报、固件升级查询、频响曲线计算和分享码管理等核心业务场景。新增的CurveCache和ShareCodeCache提供了更高级的缓存策略,包括fr数据分离存储、分布式锁机制、Lua原子操作等,显著提升了系统的响应性能和数据一致性。通过集成 Redis 缓存层和异步持久化任务,系统在高并发场景下表现出色。建议后续继续优化缓存策略,增加缓存监控指标,完善缓存失效和更新机制,并持续改进监控与日志体系。
|
||||
Luxsin 的数据访问层经过重构后,采用了更加完善的缓存感知查询逻辑,实现了多级缓存策略和智能数据刷新机制。新增的设备持久化仓库、OTA仓库、曲线仓库和分享码仓库进一步完善了数据访问层的功能,支持设备信息上报、固件升级查询、频响曲线计算和分享码管理等核心业务场景。新增的CurveCache和ShareCodeCache提供了更高级的缓存策略,包括fr数据分离存储、分布式锁机制、Lua原子操作等,显著提升了系统的响应性能和数据一致性。通过集成 Redis 缓存层和异步持久化任务,系统在高并发场景下表现出色。
|
||||
|
||||
**重要更新**:OTA仓库层已成功移除了pawVerCode、pawVerName、pawUrl、pawMd5等冗余字段,简化了查询逻辑和数据处理流程,提升了系统性能和维护性。OTA模型结构已精简,移除了不必要的字段,提高了数据传输效率。
|
||||
|
||||
建议后续继续优化缓存策略,增加缓存监控指标,完善缓存失效和更新机制,并持续改进监控与日志体系。
|
||||
|
||||
## 附录:扩展新 Repository 指南
|
||||
- **设计原则**
|
||||
|
||||
Reference in New Issue
Block a user