Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
commit
8cd3ac9a13
14 changed files with 63 additions and 59 deletions
|
@ -882,7 +882,6 @@
|
|||
"task.database.index.commit": "Execute database index commit",
|
||||
"task.database.index.ref": "Execute database index reference",
|
||||
"task.database.index.fix": "Execute database index fix",
|
||||
"task.database.cache": "Execute database cache",
|
||||
"task.ocr.image": "Execute image OCR to extract text",
|
||||
"task.history.generateDoc": "Execute GenerateDoc History",
|
||||
"task.database.index.embedBlock": "Execute database index embed block",
|
||||
|
|
|
@ -882,7 +882,6 @@
|
|||
"task.database.index.commit": "Ejecutar la confirmación del índice de la base de datos",
|
||||
"task.database.index.ref": "Ejecutar referencia de índice de base de datos",
|
||||
"task.database.index.fix": "Ejecutar corrección del índice de la base de datos",
|
||||
"task.database.cache": "Ejecutar caché de base de datos",
|
||||
"task.ocr.image": "Ejecutar OCR de imagen para extraer texto",
|
||||
"task.history.generateDoc": "Ejecutar Historial GenerateDoc",
|
||||
"task.database.index.embedBlock": "Ejecutar bloque de incrustación de índice de base de datos",
|
||||
|
|
|
@ -882,7 +882,6 @@
|
|||
"task.database.index.commit": "Effectuer la validation de l'index de la base de données",
|
||||
"task.database.index.ref": "Exécuter la référence d'index de la base de données",
|
||||
"task.database.index.fix": "Effectuer la correction de l'index de la base de données",
|
||||
"task.database.cache": "Effectuer le cache de la base de données",
|
||||
"task.ocr.image": "Exécute l'OCR d'image pour extraire le texte",
|
||||
"task.history.generateDoc": "Exécuter l'historique de GenerateDoc",
|
||||
"task.database.index.embedBlock": "Exécuter le bloc d'intégration d'index de base de données",
|
||||
|
|
|
@ -882,7 +882,6 @@
|
|||
"task.database.index.commit": "執行數據庫索引提交",
|
||||
"task.database.index.ref": "執行數據庫索引引用",
|
||||
"task.database.index.fix": "執行數據庫索引訂正",
|
||||
"task.database.cache": "執行數據庫緩存",
|
||||
"task.ocr.image": "執行圖片 OCR 提取文本",
|
||||
"task.history.generateDoc": "執行生成文件歷史",
|
||||
"task.database.index.embedBlock": "執行數據庫索引嵌入塊",
|
||||
|
|
|
@ -882,7 +882,6 @@
|
|||
"task.database.index.commit": "执行数据库索引提交",
|
||||
"task.database.index.ref": "执行数据库索引引用",
|
||||
"task.database.index.fix": "执行数据库索引订正",
|
||||
"task.database.cache": "执行数据库缓存",
|
||||
"task.ocr.image": "执行图片 OCR 提取文本",
|
||||
"task.history.generateDoc": "执行生成文件历史",
|
||||
"task.database.index.embedBlock": "执行数据库索引嵌入块",
|
||||
|
|
8
kernel/cache/ial.go
vendored
8
kernel/cache/ial.go
vendored
|
@ -24,8 +24,8 @@ import (
|
|||
)
|
||||
|
||||
var docIALCache, _ = ristretto.NewCache(&ristretto.Config{
|
||||
NumCounters: 200000,
|
||||
MaxCost: 1000 * 1000 * 32,
|
||||
NumCounters: 10240,
|
||||
MaxCost: 1024,
|
||||
BufferItems: 64,
|
||||
})
|
||||
|
||||
|
@ -55,8 +55,8 @@ func ClearDocsIAL() {
|
|||
}
|
||||
|
||||
var blockIALCache, _ = ristretto.NewCache(&ristretto.Config{
|
||||
NumCounters: 800000,
|
||||
MaxCost: 1000 * 1000 * 64,
|
||||
NumCounters: 10240,
|
||||
MaxCost: 1024,
|
||||
BufferItems: 64,
|
||||
})
|
||||
|
||||
|
|
|
@ -506,7 +506,6 @@ func ReloadUI() {
|
|||
|
||||
func FullReindex() {
|
||||
task.AppendTask(task.DatabaseIndexFull, fullReindex)
|
||||
task.AppendTask(task.DatabaseCache, sql.EnableCache)
|
||||
task.AppendTask(task.DatabaseIndexRef, IndexRefs)
|
||||
task.AppendTask(task.ReloadUI, util.ReloadUI)
|
||||
}
|
||||
|
@ -521,7 +520,6 @@ func fullReindex() {
|
|||
}
|
||||
treenode.InitBlockTree(true)
|
||||
|
||||
sql.DisableCache()
|
||||
openedBoxes := Conf.GetOpenedBoxes()
|
||||
for _, openedBox := range openedBoxes {
|
||||
index(openedBox.ID)
|
||||
|
|
|
@ -242,6 +242,7 @@ func RollbackDocHistory(boxID, historyPath string) (err error) {
|
|||
return
|
||||
}
|
||||
|
||||
util.ReloadUI()
|
||||
FullReindex()
|
||||
IncSync()
|
||||
return nil
|
||||
|
@ -297,9 +298,9 @@ func RollbackNotebookHistory(historyPath string) (err error) {
|
|||
return
|
||||
}
|
||||
|
||||
util.ReloadUI()
|
||||
FullReindex()
|
||||
IncSync()
|
||||
ReloadUI()
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
|
@ -131,9 +131,6 @@ func index(boxID string) {
|
|||
}
|
||||
|
||||
func IndexRefs() {
|
||||
sql.EnableCache()
|
||||
defer sql.ClearBlockCache()
|
||||
|
||||
start := time.Now()
|
||||
util.SetBootDetails("Resolving refs...")
|
||||
util.PushStatusBar(Conf.Language(54))
|
||||
|
|
|
@ -39,7 +39,6 @@ func HandleSignal() {
|
|||
|
||||
var (
|
||||
firstRunHookDesktopUIProcJob = true
|
||||
noUIProcCount int
|
||||
)
|
||||
|
||||
func HookDesktopUIProcJob() {
|
||||
|
@ -59,12 +58,34 @@ func HookDesktopUIProcJob() {
|
|||
return
|
||||
}
|
||||
|
||||
uiProcNames := []string{"siyuan", "electron"}
|
||||
uiProcessCount := 0
|
||||
util.UIProcessIDs.Range(func(uiProcIDArg, _ interface{}) bool {
|
||||
// 从 UI 进程 ID 列表中找到 UI 进程
|
||||
uiProcCount := getAttachedUIProcCount()
|
||||
if 0 < uiProcCount {
|
||||
return
|
||||
}
|
||||
|
||||
uiProcessCount++
|
||||
logging.LogWarnf("no active UI proc, continue to check from attached ui processes after 15s")
|
||||
time.Sleep(15 * time.Second)
|
||||
uiProcCount = getAttachedUIProcCount()
|
||||
if 0 < uiProcCount {
|
||||
return
|
||||
}
|
||||
logging.LogWarnf("no active UI proc, continue to check from all processes after 15s")
|
||||
time.Sleep(15 * time.Second)
|
||||
uiProcCount = getUIProcCount()
|
||||
if 0 < uiProcCount {
|
||||
logging.LogInfof("active UI proc count [%d]", uiProcCount)
|
||||
return
|
||||
}
|
||||
|
||||
logging.LogWarnf("confirmed no active UI proc, exit kernel process now")
|
||||
Close(false, 1)
|
||||
}
|
||||
|
||||
var uiProcNames = []string{"siyuan", "electron"}
|
||||
|
||||
// getAttachedUIProcCount 获取已经附加的 UI 进程数。
|
||||
func getAttachedUIProcCount() (ret int) {
|
||||
util.UIProcessIDs.Range(func(uiProcIDArg, _ interface{}) bool {
|
||||
uiProcID, err := strconv.Atoi(uiProcIDArg.(string))
|
||||
if nil != err {
|
||||
logging.LogErrorf("invalid UI proc ID [%s]: %s", uiProcIDArg, err)
|
||||
|
@ -78,7 +99,6 @@ func HookDesktopUIProcJob() {
|
|||
}
|
||||
|
||||
if nil == proc {
|
||||
noUIProcCount++
|
||||
return true
|
||||
}
|
||||
|
||||
|
@ -87,37 +107,26 @@ func HookDesktopUIProcJob() {
|
|||
for _, name := range uiProcNames {
|
||||
uiProcOk = strings.Contains(procName, name)
|
||||
}
|
||||
if !uiProcOk {
|
||||
noUIProcCount++
|
||||
if uiProcOk {
|
||||
ret++
|
||||
}
|
||||
return true
|
||||
})
|
||||
|
||||
if 1 > uiProcessCount {
|
||||
// 如果 UI 进程 ID 列表中没有找到 UI 进程则从完整的进程列表中找
|
||||
procs, _ := goPS.Processes()
|
||||
for _, proc := range procs {
|
||||
procName := strings.ToLower(proc.Executable())
|
||||
uiProcOk := false
|
||||
for _, name := range uiProcNames {
|
||||
uiProcOk = strings.Contains(procName, name)
|
||||
}
|
||||
if uiProcOk {
|
||||
uiProcessCount++
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
if 1 > uiProcessCount {
|
||||
noUIProcCount++
|
||||
}
|
||||
}
|
||||
|
||||
if 0 < noUIProcCount {
|
||||
logging.LogInfof("no active UI proc count [%d]", noUIProcCount)
|
||||
if 1 < noUIProcCount {
|
||||
logging.LogInfof("confirmed no active UI proc, exit kernel process now")
|
||||
Close(false, 1)
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// getUIProcCount 获取 UI 进程数。
|
||||
func getUIProcCount() (ret int) {
|
||||
procs, _ := goPS.Processes()
|
||||
for _, proc := range procs {
|
||||
procName := strings.ToLower(proc.Executable())
|
||||
uiProcOk := false
|
||||
for _, name := range uiProcNames {
|
||||
uiProcOk = strings.Contains(procName, name)
|
||||
}
|
||||
if uiProcOk {
|
||||
ret++
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
|
|
@ -29,17 +29,17 @@ import (
|
|||
)
|
||||
|
||||
var memCache, _ = ristretto.NewCache(&ristretto.Config{
|
||||
NumCounters: 800000,
|
||||
MaxCost: 1000 * 1000 * 100,
|
||||
NumCounters: 10240,
|
||||
MaxCost: 1024,
|
||||
BufferItems: 64,
|
||||
})
|
||||
var disabled = true
|
||||
|
||||
func EnableCache() {
|
||||
func enableCache() {
|
||||
disabled = false
|
||||
}
|
||||
|
||||
func DisableCache() {
|
||||
func disableCache() {
|
||||
disabled = true
|
||||
}
|
||||
|
||||
|
|
|
@ -68,8 +68,8 @@ func InitDatabase(forceRebuild bool) (err error) {
|
|||
defer initDatabaseLock.Unlock()
|
||||
|
||||
ClearBlockCache()
|
||||
DisableCache()
|
||||
defer EnableCache()
|
||||
disableCache()
|
||||
defer enableCache()
|
||||
|
||||
util.IncBootProgress(2, "Initializing database...")
|
||||
|
||||
|
|
|
@ -105,6 +105,11 @@ func FlushQueue() {
|
|||
|
||||
context := map[string]interface{}{eventbus.CtxPushMsg: eventbus.CtxPushMsgToStatusBar}
|
||||
total := len(ops)
|
||||
if 512 < total {
|
||||
disableCache()
|
||||
defer enableCache()
|
||||
}
|
||||
|
||||
for i, op := range ops {
|
||||
if util.IsExiting {
|
||||
return
|
||||
|
|
|
@ -86,7 +86,6 @@ const (
|
|||
DatabaseIndexCommit = "task.database.index.commit" // 数据库索引提交
|
||||
DatabaseIndexRef = "task.database.index.ref" // 数据库索引引用
|
||||
DatabaseIndexFix = "task.database.index.fix" // 数据库索引订正
|
||||
DatabaseCache = "task.database.cache" // 数据库缓存
|
||||
OCRImage = "task.ocr.image" // 图片 OCR 提取文本
|
||||
HistoryGenerateDoc = "task.history.generateDoc" // 生成文件历史
|
||||
DatabaseIndexEmbedBlock = "task.database.index.embedBlock" // 数据库索引嵌入块
|
||||
|
|
Loading…
Add table
Reference in a new issue