Sfoglia il codice sorgente

:art: 改进内核任务调度机制提升稳定性 https://github.com/siyuan-note/siyuan/issues/7113

Liang Ding 2 anni fa
parent
commit
07abcd0121

+ 1 - 1
app/appearance/langs/en_US.json

@@ -942,7 +942,7 @@
     "53": "Data synchronization has not been enabled",
     "53": "Data synchronization has not been enabled",
     "54": "Indexing references...",
     "54": "Indexing references...",
     "55": "Indexed references of [%d] documents",
     "55": "Indexed references of [%d] documents",
-    "56": "TODO",
+    "56": "Reindexing, please wait until rebuilding is complete before trying to open the document",
     "57": "Failed to create temp key",
     "57": "Failed to create temp key",
     "58": "After the index is rebuilt, the interface will be automatically refreshed later...",
     "58": "After the index is rebuilt, the interface will be automatically refreshed later...",
     "59": "Failed to set sync ignore list",
     "59": "Failed to set sync ignore list",

+ 1 - 1
app/appearance/langs/es_ES.json

@@ -942,7 +942,7 @@
     "53": "No se ha habilitado la sincronizacion de datos",
     "53": "No se ha habilitado la sincronizacion de datos",
     "54": "Indexando referencias...",
     "54": "Indexando referencias...",
     "55": "Referencias indexadas de [%d] documentos",
     "55": "Referencias indexadas de [%d] documentos",
-    "56": "TODO",
+    "56": "Reindexando, espere hasta que se complete la reconstrucción antes de intentar abrir el documento",
     "57": "Fallo en la creación de la clave temporal",
     "57": "Fallo en la creación de la clave temporal",
     "58": "Después de reconstruir el índice, la interfaz se actualizará automáticamente más tarde...",
     "58": "Después de reconstruir el índice, la interfaz se actualizará automáticamente más tarde...",
     "59": " Falló la configuración de sincronización de la lista de ignorados",
     "59": " Falló la configuración de sincronización de la lista de ignorados",

+ 1 - 1
app/appearance/langs/fr_FR.json

@@ -942,7 +942,7 @@
     "53": "La synchronisation des données n'a pas été activée",
     "53": "La synchronisation des données n'a pas été activée",
     "54": "Indexation des références...",
     "54": "Indexation des références...",
     "55": "Références indexées de [%d] documents",
     "55": "Références indexées de [%d] documents",
-    "56": "TODO",
+    "56": "Réindexation, veuillez attendre que la reconstruction soit terminée avant d'essayer d'ouvrir le document",
     "57": "Échec de la création d'une clé temporaire",
     "57": "Échec de la création d'une clé temporaire",
     "58": "Une fois l'index reconstruit, l'interface sera automatiquement rafraîchie ultérieurement...",
     "58": "Une fois l'index reconstruit, l'interface sera automatiquement rafraîchie ultérieurement...",
     "59": "Échec de la définition de la liste des ignores de synchronisation",
     "59": "Échec de la définition de la liste des ignores de synchronisation",

+ 2 - 2
app/appearance/langs/zh_CHT.json

@@ -942,7 +942,7 @@
     "53": "數據同步尚未啟用",
     "53": "數據同步尚未啟用",
     "54": "正在索引引用關係...",
     "54": "正在索引引用關係...",
     "55": "已完成索引 [%d] 篇文檔的引用關係",
     "55": "已完成索引 [%d] 篇文檔的引用關係",
-    "56": "TODO",
+    "56": "正在重建索引,請等重建索引完畢後再嘗試打開該文檔",
     "57": "創建臨時金鑰失敗",
     "57": "創建臨時金鑰失敗",
     "58": "重建索引完畢,稍後將自動重新整理介面...",
     "58": "重建索引完畢,稍後將自動重新整理介面...",
     "59": "設置同步忽略列表失敗",
     "59": "設置同步忽略列表失敗",
@@ -1073,4 +1073,4 @@
     "184": "由<a href=\"https://b3log.org/siyuan\" target=\"_blank\">思源筆記</a>強力驅動",
     "184": "由<a href=\"https://b3log.org/siyuan\" target=\"_blank\">思源筆記</a>強力驅動",
     "185": "索引校驗完畢"
     "185": "索引校驗完畢"
   }
   }
-},
+}

+ 1 - 1
app/appearance/langs/zh_CN.json

@@ -942,7 +942,7 @@
     "53": "数据同步尚未启用",
     "53": "数据同步尚未启用",
     "54": "正在索引引用关系...",
     "54": "正在索引引用关系...",
     "55": "已完成索引 [%d] 篇文档的引用关系",
     "55": "已完成索引 [%d] 篇文档的引用关系",
-    "56": "TODO",
+    "56": "正在重建索引,请等重建索引完毕后再尝试打开该文档",
     "57": "创建临时密钥失败",
     "57": "创建临时密钥失败",
     "58": "重建索引完毕,稍后将自动刷新界面...",
     "58": "重建索引完毕,稍后将自动刷新界面...",
     "59": "设置同步忽略列表失败",
     "59": "设置同步忽略列表失败",

+ 4 - 4
kernel/api/block.go

@@ -175,8 +175,8 @@ func checkBlockExist(c *gin.Context) {
 		return
 		return
 	}
 	}
 	if errors.Is(err, model.ErrIndexing) {
 	if errors.Is(err, model.ErrIndexing) {
-		ret.Code = 3
-		ret.Data = id
+		ret.Code = 0
+		ret.Data = false
 		return
 		return
 	}
 	}
 	ret.Data = nil != b
 	ret.Data = nil != b
@@ -384,7 +384,7 @@ func getBlockInfo(c *gin.Context) {
 	}
 	}
 	if errors.Is(err, model.ErrIndexing) {
 	if errors.Is(err, model.ErrIndexing) {
 		ret.Code = 3
 		ret.Code = 3
-		ret.Data = id
+		ret.Msg = model.Conf.Language(56)
 		return
 		return
 	}
 	}
 	if nil == block {
 	if nil == block {
@@ -415,7 +415,7 @@ func getBlockInfo(c *gin.Context) {
 	}
 	}
 	if errors.Is(err, model.ErrIndexing) {
 	if errors.Is(err, model.ErrIndexing) {
 		ret.Code = 3
 		ret.Code = 3
-		ret.Data = id
+		ret.Data = model.Conf.Language(56)
 		return
 		return
 	}
 	}
 	rootTitle := root.IAL["title"]
 	rootTitle := root.IAL["title"]

+ 1 - 1
kernel/model/block.go

@@ -393,7 +393,7 @@ func getBlock(id string) (ret *Block, err error) {
 
 
 	tree, err := loadTreeByBlockID(id)
 	tree, err := loadTreeByBlockID(id)
 	if nil != err {
 	if nil != err {
-		if indexing {
+		if isIndexing() {
 			err = ErrIndexing
 			err = ErrIndexing
 		}
 		}
 		return
 		return

+ 4 - 2
kernel/model/index.go

@@ -54,10 +54,12 @@ func (box *Box) Index() {
 
 
 var indexing = false
 var indexing = false
 
 
-func waitForIndexing() {
-	for indexing {
+func isIndexing() (ret bool) {
+	for i := 0; indexing || i > 7; i++ {
 		time.Sleep(time.Millisecond * 100)
 		time.Sleep(time.Millisecond * 100)
+		ret = true
 	}
 	}
+	return
 }
 }
 
 
 func index(boxID string) {
 func index(boxID string) {

+ 0 - 5
kernel/task/queue.go

@@ -144,8 +144,6 @@ func StatusLoop() {
 	}
 	}
 }
 }
 
 
-var taskWaitGroup = sync.WaitGroup{}
-
 func Loop() {
 func Loop() {
 	for {
 	for {
 		time.Sleep(10 * time.Millisecond)
 		time.Sleep(10 * time.Millisecond)
@@ -163,9 +161,7 @@ func Loop() {
 			break
 			break
 		}
 		}
 
 
-		taskWaitGroup.Add(1)
 		go execTask(task)
 		go execTask(task)
-		taskWaitGroup.Wait()
 	}
 	}
 }
 }
 
 
@@ -202,5 +198,4 @@ func execTask(task *Task) {
 	}
 	}
 
 
 	task.Handler.Call(args)
 	task.Handler.Call(args)
-	taskWaitGroup.Done()
 }
 }