Commit d15516d6 by CaIon

perf: 优化数据看板性能

parent de6fbc01
...@@ -79,7 +79,7 @@ func RecordConsumeLog(ctx context.Context, userId int, channelId int, promptToke ...@@ -79,7 +79,7 @@ func RecordConsumeLog(ctx context.Context, userId int, channelId int, promptToke
common.LogError(ctx, "failed to record log: "+err.Error()) common.LogError(ctx, "failed to record log: "+err.Error())
} }
if common.DataExportEnabled { if common.DataExportEnabled {
LogQuotaData(userId, username, modelName, quota, common.GetTimestamp()) go LogQuotaData(userId, username, modelName, quota, common.GetTimestamp())
} }
} }
......
...@@ -37,9 +37,7 @@ func UpdateQuotaData() { ...@@ -37,9 +37,7 @@ func UpdateQuotaData() {
var CacheQuotaData = make(map[string]*QuotaData) var CacheQuotaData = make(map[string]*QuotaData)
var CacheQuotaDataLock = sync.Mutex{} var CacheQuotaDataLock = sync.Mutex{}
func LogQuotaDataCache(userId int, username string, modelName string, quota int, createdAt int64) { func logQuotaDataCache(userId int, username string, modelName string, quota int, createdAt int64) {
// 只精确到小时
createdAt = createdAt - (createdAt % 3600)
key := fmt.Sprintf("%d-%s-%s-%d", userId, username, modelName, createdAt) key := fmt.Sprintf("%d-%s-%s-%d", userId, username, modelName, createdAt)
quotaData, ok := CacheQuotaData[key] quotaData, ok := CacheQuotaData[key]
if ok { if ok {
...@@ -59,9 +57,12 @@ func LogQuotaDataCache(userId int, username string, modelName string, quota int, ...@@ -59,9 +57,12 @@ func LogQuotaDataCache(userId int, username string, modelName string, quota int,
} }
func LogQuotaData(userId int, username string, modelName string, quota int, createdAt int64) { func LogQuotaData(userId int, username string, modelName string, quota int, createdAt int64) {
// 只精确到小时
createdAt = createdAt - (createdAt % 3600)
CacheQuotaDataLock.Lock() CacheQuotaDataLock.Lock()
defer CacheQuotaDataLock.Unlock() defer CacheQuotaDataLock.Unlock()
LogQuotaDataCache(userId, username, modelName, quota, createdAt) logQuotaDataCache(userId, username, modelName, quota, createdAt)
} }
func SaveQuotaDataCache() { func SaveQuotaDataCache() {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment