This commit is contained in:
Liang Ding 2023-02-17 15:40:40 +08:00
parent 9e948196ed
commit 9b4a6eb577
No known key found for this signature in database
GPG key ID: 136F30F901A2231D
2 changed files with 27 additions and 2 deletions

View file

@ -582,8 +582,9 @@ func ReindexHistory() (err error) {
name := historyDir.Name() name := historyDir.Name()
indexHistoryDir(name, lutEngine) indexHistoryDir(name, lutEngine)
util.PushEndlessProgress(fmt.Sprintf(Conf.Language(40), name))
} }
sql.WaitForWritingHistoryDatabase()
return return
} }

View file

@ -59,7 +59,7 @@ func FlushHistoryQueue() {
defer txLock.Unlock() defer txLock.Unlock()
start := time.Now() start := time.Now()
context := map[string]interface{}{eventbus.CtxPushMsg: eventbus.CtxPushMsgToStatusBar} context := map[string]interface{}{eventbus.CtxPushMsg: eventbus.CtxPushMsgToStatusBarAndProgress}
total := len(ops) total := len(ops)
for i, op := range ops { for i, op := range ops {
if util.IsExiting { if util.IsExiting {
@ -137,3 +137,27 @@ func getHistoryOperations() (ops []*historyDBQueueOperation) {
historyOperationQueue = nil historyOperationQueue = nil
return return
} }
func WaitForWritingHistoryDatabase() {
var printLog bool
var lastPrintLog bool
for i := 0; isWritingHistoryDatabase(); i++ {
time.Sleep(50 * time.Millisecond)
if 200 < i && !printLog { // 10s 后打日志
logging.LogWarnf("history database is writing: \n%s", logging.ShortStack())
printLog = true
}
if 1200 < i && !lastPrintLog { // 60s 后打日志
logging.LogWarnf("history database is still writing")
lastPrintLog = true
}
}
}
func isWritingHistoryDatabase() bool {
time.Sleep(util.SQLFlushInterval + 50*time.Millisecond)
if 0 < len(historyOperationQueue) || util.IsMutexLocked(&historyTxLock) {
return true
}
return false
}