fix: move RPM prefetch before routing segment in legacy/mixed paths

Ensures isAccountSchedulableForRPM calls within the routing segment
hit the prefetch cache instead of querying Redis individually.
This commit is contained in:
QTom
2026-02-28 10:17:25 +08:00
parent 607237571f
commit ff9683b0fc

View File

@@ -2607,6 +2607,9 @@ func (s *GatewayService) selectAccountForModelWithPlatform(ctx context.Context,
} }
accountsLoaded = true accountsLoaded = true
// 提前预取 RPM 计数,确保 routing 段内的 isAccountSchedulableForRPM 调用能命中缓存
ctx = s.withRPMPrefetch(ctx, accounts)
routingSet := make(map[int64]struct{}, len(routingAccountIDs)) routingSet := make(map[int64]struct{}, len(routingAccountIDs))
for _, id := range routingAccountIDs { for _, id := range routingAccountIDs {
if id > 0 { if id > 0 {
@@ -2822,6 +2825,9 @@ func (s *GatewayService) selectAccountWithMixedScheduling(ctx context.Context, g
} }
accountsLoaded = true accountsLoaded = true
// 提前预取 RPM 计数,确保 routing 段内的 isAccountSchedulableForRPM 调用能命中缓存
ctx = s.withRPMPrefetch(ctx, accounts)
routingSet := make(map[int64]struct{}, len(routingAccountIDs)) routingSet := make(map[int64]struct{}, len(routingAccountIDs))
for _, id := range routingAccountIDs { for _, id := range routingAccountIDs {
if id > 0 { if id > 0 {