feat: 实现 IoT 卡轮询系统(支持千万级卡规模)
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 6m35s
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 6m35s
实现功能: - 实名状态检查轮询(可配置间隔) - 卡流量检查轮询(支持跨月流量追踪) - 套餐检查与超额自动停机 - 分布式并发控制(Redis 信号量) - 手动触发轮询(单卡/批量/条件筛选) - 数据清理配置与执行 - 告警规则与历史记录 - 实时监控统计(队列/性能/并发) 性能优化: - Redis 缓存卡信息,减少 DB 查询 - Pipeline 批量写入 Redis - 异步流量记录写入 - 渐进式初始化(10万卡/批) 压测工具(scripts/benchmark/): - Mock Gateway 模拟上游服务 - 测试卡生成器 - 配置初始化脚本 - 实时监控脚本 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -116,7 +116,7 @@ func (s *Service) Get(ctx context.Context, id uint) (*dto.ShopPackageAllocationR
|
||||
}
|
||||
|
||||
shop, _ := s.shopStore.GetByID(ctx, allocation.ShopID)
|
||||
pkg, _ := s.packageStore.GetByID(ctx, allocation.PackageID)
|
||||
pkg, _ := s.packageStore.GetByIDUnscoped(ctx, allocation.PackageID)
|
||||
|
||||
shopName := ""
|
||||
packageName := ""
|
||||
@@ -156,7 +156,7 @@ func (s *Service) Update(ctx context.Context, id uint, req *dto.UpdateShopPackag
|
||||
}
|
||||
|
||||
shop, _ := s.shopStore.GetByID(ctx, allocation.ShopID)
|
||||
pkg, _ := s.packageStore.GetByID(ctx, allocation.PackageID)
|
||||
pkg, _ := s.packageStore.GetByIDUnscoped(ctx, allocation.PackageID)
|
||||
|
||||
shopName := ""
|
||||
packageName := ""
|
||||
@@ -226,7 +226,7 @@ func (s *Service) List(ctx context.Context, req *dto.ShopPackageAllocationListRe
|
||||
responses := make([]*dto.ShopPackageAllocationResponse, len(allocations))
|
||||
for i, a := range allocations {
|
||||
shop, _ := s.shopStore.GetByID(ctx, a.ShopID)
|
||||
pkg, _ := s.packageStore.GetByID(ctx, a.PackageID)
|
||||
pkg, _ := s.packageStore.GetByIDUnscoped(ctx, a.PackageID)
|
||||
|
||||
shopName := ""
|
||||
packageName := ""
|
||||
@@ -271,10 +271,10 @@ func (s *Service) buildResponse(ctx context.Context, a *model.ShopPackageAllocat
|
||||
var seriesID uint
|
||||
seriesName := ""
|
||||
|
||||
pkg, _ := s.packageStore.GetByID(ctx, a.PackageID)
|
||||
pkg, _ := s.packageStore.GetByIDUnscoped(ctx, a.PackageID)
|
||||
if pkg != nil {
|
||||
seriesID = pkg.SeriesID
|
||||
series, _ := s.packageSeriesStore.GetByID(ctx, pkg.SeriesID)
|
||||
series, _ := s.packageSeriesStore.GetByIDUnscoped(ctx, pkg.SeriesID)
|
||||
if series != nil {
|
||||
seriesName = series.SeriesName
|
||||
}
|
||||
@@ -349,7 +349,7 @@ func (s *Service) UpdateCostPrice(ctx context.Context, id uint, newCostPrice int
|
||||
}
|
||||
|
||||
shop, _ := s.shopStore.GetByID(ctx, allocation.ShopID)
|
||||
pkg, _ := s.packageStore.GetByID(ctx, allocation.PackageID)
|
||||
pkg, _ := s.packageStore.GetByIDUnscoped(ctx, allocation.PackageID)
|
||||
|
||||
shopName := ""
|
||||
packageName := ""
|
||||
|
||||
Reference in New Issue
Block a user