feat: sync deployed v1.0.0-rc.38-custom.67

This commit is contained in:
cneicy committed 2026-10-06 00:07:10 +08:00
1 parent d09216bbde
commit 8e6ed0317b
154 files changed
+39540 -20509

No files matched your search

+33
View File
@@ -0,0 +1,33 @@
package service
import (
"context"
"sync"
"time"
"github.com/QuantumNous/new-api/model"
)
var groupModelCostSnapshot struct {
sync.Mutex
updated time.Time
values map[string]map[string]model.GroupModelCost
}
// Immutable snapshots are shared by status display and automatic routing.
func GroupModelCosts(ctx context.Context) (map[string]map[string]model.GroupModelCost, error) {
groupModelCostSnapshot.Lock()
defer groupModelCostSnapshot.Unlock()
now := time.Now()
if groupModelCostSnapshot.values != nil && now.Sub(groupModelCostSnapshot.updated) < time.Minute {
return groupModelCostSnapshot.values, nil
}
queryCtx, cancel := context.WithTimeout(ctx, 3*time.Second)
defer cancel()
values, err := model.GetGroupModelCosts(queryCtx, now.Add(-24*time.Hour), now)
if err != nil {
return nil, err
}
groupModelCostSnapshot.values, groupModelCostSnapshot.updated = values, now
return values, nil
}