🎨 Improve check index

This commit is contained in:
Daniel 2024-11-17 09:35:48 +08:00
parent 671333ff91
commit 49464fab28
No known key found for this signature in database
GPG key ID: 86211BA83DF03017

View file

@ -49,38 +49,32 @@ func checkIndex() {
checkIndexOnce.Do(func() {
logging.LogInfof("start checking index...")
task.AppendTask(task.DatabaseIndexFix, removeDuplicateDatabaseIndex)
removeDuplicateDatabaseIndex()
sql.FlushQueue()
task.AppendTask(task.DatabaseIndexFix, resetDuplicateBlocksOnFileSys)
task.AppendTask(task.DatabaseIndexFix, fixBlockTreeByFileSys)
resetDuplicateBlocksOnFileSys()
sql.FlushQueue()
task.AppendTask(task.DatabaseIndexFix, fixDatabaseIndexByBlockTree)
fixBlockTreeByFileSys()
sql.FlushQueue()
task.AppendTask(task.DatabaseIndexFix, removeDuplicateDatabaseRefs)
fixDatabaseIndexByBlockTree()
sql.FlushQueue()
removeDuplicateDatabaseRefs()
// 后面要加任务的话记得修改推送任务栏的进度 util.PushStatusBar(fmt.Sprintf(Conf.Language(58), 1, 5))
task.AppendTask(task.DatabaseIndexFix, func() {
util.PushStatusBar(Conf.Language(185))
})
debug.FreeOSMemory()
util.PushStatusBar(Conf.Language(185))
logging.LogInfof("finish checking index")
})
}
var autoFixLock = sync.Mutex{}
// removeDuplicateDatabaseRefs 删除重复的数据库引用关系。
func removeDuplicateDatabaseRefs() {
defer logging.Recover()
autoFixLock.Lock()
defer autoFixLock.Unlock()
util.PushStatusBar(fmt.Sprintf(Conf.Language(58), 5, 5))
duplicatedRootIDs := sql.GetRefDuplicatedDefRootIDs()
for _, rootID := range duplicatedRootIDs {
@ -96,9 +90,6 @@ func removeDuplicateDatabaseRefs() {
func removeDuplicateDatabaseIndex() {
defer logging.Recover()
autoFixLock.Lock()
defer autoFixLock.Unlock()
util.PushStatusBar(fmt.Sprintf(Conf.Language(58), 1, 5))
duplicatedRootIDs := sql.GetDuplicatedRootIDs("blocks")
if 1 > len(duplicatedRootIDs) {
@ -142,9 +133,6 @@ func removeDuplicateDatabaseIndex() {
func resetDuplicateBlocksOnFileSys() {
defer logging.Recover()
autoFixLock.Lock()
defer autoFixLock.Unlock()
util.PushStatusBar(fmt.Sprintf(Conf.Language(58), 2, 5))
boxes := Conf.GetBoxes()
luteEngine := lute.New()
@ -291,9 +279,6 @@ func recreateTree(tree *parse.Tree, absPath string) {
func fixBlockTreeByFileSys() {
defer logging.Recover()
autoFixLock.Lock()
defer autoFixLock.Unlock()
util.PushStatusBar(fmt.Sprintf(Conf.Language(58), 3, 5))
boxes := Conf.GetOpenedBoxes()
luteEngine := lute.New()