|
|
@@ -2,11 +2,12 @@ package model
|
|
|
|
|
|
import (
|
|
|
"errors"
|
|
|
- "github.com/bytedance/gopkg/util/gopool"
|
|
|
- "gorm.io/gorm"
|
|
|
"one-api/common"
|
|
|
"sync"
|
|
|
"time"
|
|
|
+
|
|
|
+ "github.com/bytedance/gopkg/util/gopool"
|
|
|
+ "gorm.io/gorm"
|
|
|
)
|
|
|
|
|
|
const (
|
|
|
@@ -48,6 +49,22 @@ func addNewRecord(type_ int, id int, value int) {
|
|
|
}
|
|
|
|
|
|
func batchUpdate() {
|
|
|
+ // check if there's any data to update
|
|
|
+ hasData := false
|
|
|
+ for i := 0; i < BatchUpdateTypeCount; i++ {
|
|
|
+ batchUpdateLocks[i].Lock()
|
|
|
+ if len(batchUpdateStores[i]) > 0 {
|
|
|
+ hasData = true
|
|
|
+ batchUpdateLocks[i].Unlock()
|
|
|
+ break
|
|
|
+ }
|
|
|
+ batchUpdateLocks[i].Unlock()
|
|
|
+ }
|
|
|
+
|
|
|
+ if !hasData {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
common.SysLog("batch update started")
|
|
|
for i := 0; i < BatchUpdateTypeCount; i++ {
|
|
|
batchUpdateLocks[i].Lock()
|