优化缓存列表数据库加载速度

This commit is contained in:
GoEdgeLab
2023-10-02 16:05:42 +08:00
parent fd165b86ec
commit d79c71e874

View File

@@ -13,6 +13,7 @@ import (
"github.com/TeaOSLab/EdgeNode/internal/utils/fnv"
"github.com/iwind/TeaGo/types"
"os"
"sync"
"time"
)
@@ -61,19 +62,37 @@ func (this *FileList) Init() error {
}
remotelogs.Println("CACHE", "loading database from '"+dir+"' ...")
var wg = &sync.WaitGroup{}
var locker = sync.Mutex{}
var lastErr error
for i := 0; i < CountFileDB; i++ {
var db = NewFileListDB()
err = db.Open(dir + "/db-" + types.String(i) + ".db")
if err != nil {
return err
}
wg.Add(1)
go func(i int) {
defer wg.Done()
err = db.Init()
if err != nil {
return err
}
var db = NewFileListDB()
err = db.Open(dir + "/db-" + types.String(i) + ".db")
if err != nil {
lastErr = err
return
}
this.dbList[i] = db
err = db.Init()
if err != nil {
lastErr = err
return
}
locker.Lock()
this.dbList[i] = db
locker.Unlock()
}(i)
}
wg.Wait()
if lastErr != nil {
return lastErr
}
// 升级老版本数据库