Ver Fonte

:art: If the data repo indexing time is greater than 7s, prompt user to purge the data repo https://github.com/siyuan-note/siyuan/issues/9613

Daniel há 1 ano atrás
pai
commit
5d4015c458

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

@@ -1315,6 +1315,7 @@
     "214": "This function needs to be signed in to use",
     "215": "Save failed: The target file is being used by another program",
     "216": "Rebuilding asset content data index, please wait...",
-    "217": "[%d/%d] Created asset content data index"
+    "217": "[%d/%d] Created asset content data index",
+    "218": "Too many snapshots of the data repo have been detected, which slows down program startup and data sync. Please consider executing [Settings - About - Data repo purge]"
   }
 }

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

@@ -1315,6 +1315,7 @@
     "214": "Esta función requiere iniciar sesión en la cuenta antes de poder usarla",
     "215": "Error al guardar: el archivo de destino está siendo utilizado por otro programa",
     "216": "Reconstruyendo el índice de datos de contenido de recursos, espere...",
-    "217": "[%d/%d] Índice de datos de contenido de activos creado"
+    "217": "[%d/%d] Índice de datos de contenido de activos creado",
+    "218": "Se han detectado demasiadas instantáneas del repositorio de datos, lo que ralentiza el inicio del programa y la sincronización de datos. Considere ejecutar [Configuración - Acerca de - Purga del repositorio de datos]"
   }
 }

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

@@ -1315,6 +1315,7 @@
     "214": "La fonctionnalité nécessite un numéro de compte de connexion avant de pouvoir être utilisée",
     "215": "Échec de l'enregistrement : le fichier de destination est utilisé par un autre programme",
     "216": "Reconstruction de l'index des données du contenu des ressources, veuillez patienter...",
-    "217": "[%d/%d] Création d'un index de données de contenu d'actif"
+    "217": "[%d/%d] Création d'un index de données de contenu d'actif",
+    "218": "Trop d'instantanés du référentiel de données ont été détectés, ce qui ralentit le démarrage du programme et la synchronisation des données. Veuillez envisager d'exécuter [Paramètres - À propos - Purge du référentiel de données]"
   }
 }

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

@@ -1315,6 +1315,7 @@
     "214": "該功能需要登錄賬號後才能使用",
     "215": "保存失敗:目標文件正在被其他程序佔用",
     "216": "正在重建資源文件內容數據索引,請稍等...",
-    "217": "[%d/%d] 已經創建資源文件內容數據索引"
+    "217": "[%d/%d] 已經創建資源文件內容數據索引",
+    "218": "偵測到資料倉儲快照過多,降低了程式啟動和資料同步速度,請考慮執行 [設定 - 關於 - 資料倉儲清理]"
   }
 }

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

@@ -1315,6 +1315,7 @@
     "214": "该功能需要登录账号后才能使用",
     "215": "保存失败:目标文件并且正在被其他程序占用",
     "216": "正在重建资源文件内容数据索引,请稍等...",
-    "217": "[%d/%d] 已经创建资源文件内容数据索引"
+    "217": "[%d/%d] 已经创建资源文件内容数据索引",
+    "218": "检测到数据仓库快照过多,降低了程序启动和数据同步速度,请考虑执行 [设置 - 关于 - 数据仓库清理]"
   }
 }

+ 11 - 0
kernel/model/repository.go

@@ -1445,6 +1445,8 @@ func needFullReindex(upsertTrees int) bool {
 	return 0.2 < float64(upsertTrees)/float64(treenode.CountTrees())
 }
 
+var promotedPurgeDataRepo bool
+
 func indexRepoBeforeCloudSync(repo *dejavu.Repo) (err error) {
 	start := time.Now()
 	latest, _ := repo.Latest()
@@ -1483,7 +1485,16 @@ func indexRepoBeforeCloudSync(repo *dejavu.Repo) (err error) {
 	}
 
 	if 7000 < elapsed.Milliseconds() {
+		// If the data repo indexing time is greater than 7s, prompt user to purge the data repo https://github.com/siyuan-note/siyuan/issues/9613
 		logging.LogWarnf("index data repo before cloud sync elapsed [%dms]", elapsed.Milliseconds())
+		if !promotedPurgeDataRepo {
+			go func() {
+				util.WaitForUILoaded()
+				time.Sleep(3 * time.Second)
+				util.PushMsg(Conf.language(218), 24000)
+				promotedPurgeDataRepo = true
+			}()
+		}
 	}
 	return
 }