mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-12-20 08:30:12 +01:00
🎨 改进内核任务调度机制提升稳定性 https://github.com/siyuan-note/siyuan/issues/7113
This commit is contained in:
parent
a4d779258c
commit
fdc2f19eaa
9 changed files with 16 additions and 15 deletions
|
|
@ -151,7 +151,7 @@ func prepareWriteTree(tree *parse.Tree) (data []byte, filePath string, err error
|
||||||
newP := parse.NewParagraph()
|
newP := parse.NewParagraph()
|
||||||
tree.Root.AppendChild(newP)
|
tree.Root.AppendChild(newP)
|
||||||
tree.Root.SetIALAttr("updated", util.TimeFromID(newP.ID))
|
tree.Root.SetIALAttr("updated", util.TimeFromID(newP.ID))
|
||||||
treenode.ReindexBlockTree(tree)
|
treenode.IndexBlockTree(tree)
|
||||||
}
|
}
|
||||||
|
|
||||||
filePath = filepath.Join(util.DataDir, tree.Box, tree.Path)
|
filePath = filepath.Join(util.DataDir, tree.Box, tree.Path)
|
||||||
|
|
|
||||||
|
|
@ -535,7 +535,7 @@ func RenameAsset(oldPath, newName string) (err error) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
treenode.ReindexBlockTree(tree)
|
treenode.IndexBlockTree(tree)
|
||||||
sql.UpsertTreeQueue(tree)
|
sql.UpsertTreeQueue(tree)
|
||||||
|
|
||||||
util.PushEndlessProgress(fmt.Sprintf(Conf.Language(111), tree.Root.IALAttr("title")))
|
util.PushEndlessProgress(fmt.Sprintf(Conf.Language(111), tree.Root.IALAttr("title")))
|
||||||
|
|
|
||||||
|
|
@ -197,12 +197,12 @@ func SwapBlockRef(refID, defID string, includeChildren bool) (err error) {
|
||||||
}
|
}
|
||||||
refPivot.Unlink()
|
refPivot.Unlink()
|
||||||
|
|
||||||
treenode.ReindexBlockTree(refTree)
|
treenode.IndexBlockTree(refTree)
|
||||||
if err = writeJSONQueue(refTree); nil != err {
|
if err = writeJSONQueue(refTree); nil != err {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if !sameTree {
|
if !sameTree {
|
||||||
treenode.ReindexBlockTree(defTree)
|
treenode.IndexBlockTree(defTree)
|
||||||
if err = writeJSONQueue(defTree); nil != err {
|
if err = writeJSONQueue(defTree); nil != err {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -874,12 +874,12 @@ func writeJSONQueueWithoutChangeTime(tree *parse.Tree) (err error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func indexWriteJSONQueue(tree *parse.Tree) (err error) {
|
func indexWriteJSONQueue(tree *parse.Tree) (err error) {
|
||||||
treenode.ReindexBlockTree(tree)
|
treenode.IndexBlockTree(tree)
|
||||||
return writeJSONQueue(tree)
|
return writeJSONQueue(tree)
|
||||||
}
|
}
|
||||||
|
|
||||||
func indexWriteJSONQueueWithoutChangeTime(tree *parse.Tree) (err error) {
|
func indexWriteJSONQueueWithoutChangeTime(tree *parse.Tree) (err error) {
|
||||||
treenode.ReindexBlockTree(tree)
|
treenode.IndexBlockTree(tree)
|
||||||
return writeJSONQueueWithoutChangeTime(tree)
|
return writeJSONQueueWithoutChangeTime(tree)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -888,7 +888,7 @@ func renameWriteJSONQueue(tree *parse.Tree, oldHPath string) (err error) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
sql.RenameTreeQueue(tree, oldHPath)
|
sql.RenameTreeQueue(tree, oldHPath)
|
||||||
treenode.ReindexBlockTree(tree)
|
treenode.IndexBlockTree(tree)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -393,7 +393,7 @@ func ImportSY(zipPath, boxID, toPath string) (err error) {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
treenode.ReindexBlockTree(tree)
|
treenode.IndexBlockTree(tree)
|
||||||
sql.UpsertTreeQueue(tree)
|
sql.UpsertTreeQueue(tree)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -112,7 +112,7 @@ func index(boxID string) {
|
||||||
}
|
}
|
||||||
|
|
||||||
cache.PutDocIAL(file.path, docIAL)
|
cache.PutDocIAL(file.path, docIAL)
|
||||||
treenode.ReindexBlockTree(tree)
|
treenode.IndexBlockTree(tree)
|
||||||
sql.IndexTreeQueue(box.ID, file.path)
|
sql.IndexTreeQueue(box.ID, file.path)
|
||||||
|
|
||||||
util.IncBootProgress(bootProgressPart, fmt.Sprintf(Conf.Language(92), util.ShortPathForBootingDisplay(tree.Path)))
|
util.IncBootProgress(bootProgressPart, fmt.Sprintf(Conf.Language(92), util.ShortPathForBootingDisplay(tree.Path)))
|
||||||
|
|
|
||||||
|
|
@ -253,7 +253,7 @@ func incReindex(upserts, removes []string) {
|
||||||
if nil != err0 {
|
if nil != err0 {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
treenode.ReindexBlockTree(tree)
|
treenode.IndexBlockTree(tree)
|
||||||
sql.UpsertTreeQueue(tree)
|
sql.UpsertTreeQueue(tree)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1093,7 +1093,7 @@ func (tx *Transaction) loadTree(id string) (ret *parse.Tree, err error) {
|
||||||
|
|
||||||
func (tx *Transaction) writeTree(tree *parse.Tree) (err error) {
|
func (tx *Transaction) writeTree(tree *parse.Tree) (err error) {
|
||||||
tx.trees[tree.ID] = tree
|
tx.trees[tree.ID] = tree
|
||||||
treenode.ReindexBlockTree(tree)
|
treenode.IndexBlockTree(tree)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1446,7 +1446,7 @@ func reindexTree0(tree *parse.Tree, i, size int) {
|
||||||
tree.Root.SetIALAttr("updated", updated)
|
tree.Root.SetIALAttr("updated", updated)
|
||||||
indexWriteJSONQueue(tree)
|
indexWriteJSONQueue(tree)
|
||||||
} else {
|
} else {
|
||||||
treenode.ReindexBlockTree(tree)
|
treenode.IndexBlockTree(tree)
|
||||||
sql.IndexTreeQueue(tree.Box, tree.Path)
|
sql.IndexTreeQueue(tree.Box, tree.Path)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -45,6 +45,7 @@ type BlockTree struct {
|
||||||
Path string // 文档数据路径
|
Path string // 文档数据路径
|
||||||
HPath string // 文档可读路径
|
HPath string // 文档可读路径
|
||||||
Updated string // 更新时间
|
Updated string // 更新时间
|
||||||
|
Type string // 类型
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetRootUpdated() (ret map[string]string) {
|
func GetRootUpdated() (ret map[string]string) {
|
||||||
|
|
@ -206,7 +207,7 @@ func SetBlockTreePath(tree *parse.Tree) {
|
||||||
|
|
||||||
for _, b := range blockTrees {
|
for _, b := range blockTrees {
|
||||||
if b.RootID == tree.ID {
|
if b.RootID == tree.ID {
|
||||||
b.BoxID, b.Path, b.HPath, b.Updated = tree.Box, tree.Path, tree.HPath, tree.Root.IALAttr("updated")
|
b.BoxID, b.Path, b.HPath, b.Updated, b.Type = tree.Box, tree.Path, tree.HPath, tree.Root.IALAttr("updated"), TypeAbbr(ast.NodeDocument.String())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
blockTreesChanged = time.Now()
|
blockTreesChanged = time.Now()
|
||||||
|
|
@ -288,7 +289,7 @@ func RemoveBlockTree(id string) {
|
||||||
blockTreesChanged = time.Now()
|
blockTreesChanged = time.Now()
|
||||||
}
|
}
|
||||||
|
|
||||||
func ReindexBlockTree(tree *parse.Tree) {
|
func IndexBlockTree(tree *parse.Tree) {
|
||||||
blockTreesLock.Lock()
|
blockTreesLock.Lock()
|
||||||
defer blockTreesLock.Unlock()
|
defer blockTreesLock.Unlock()
|
||||||
|
|
||||||
|
|
@ -303,7 +304,7 @@ func ReindexBlockTree(tree *parse.Tree) {
|
||||||
if "" == n.ID {
|
if "" == n.ID {
|
||||||
return ast.WalkContinue
|
return ast.WalkContinue
|
||||||
}
|
}
|
||||||
blockTrees[n.ID] = &BlockTree{ID: n.ID, ParentID: parentID, RootID: tree.ID, BoxID: tree.Box, Path: tree.Path, HPath: tree.HPath, Updated: tree.Root.IALAttr("updated")}
|
blockTrees[n.ID] = &BlockTree{ID: n.ID, ParentID: parentID, RootID: tree.ID, BoxID: tree.Box, Path: tree.Path, HPath: tree.HPath, Updated: tree.Root.IALAttr("updated"), Type: TypeAbbr(n.Type.String())}
|
||||||
return ast.WalkContinue
|
return ast.WalkContinue
|
||||||
})
|
})
|
||||||
blockTreesChanged = time.Now()
|
blockTreesChanged = time.Now()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue