diff --git a/kernel/model/tree.go b/kernel/model/tree.go index 2fa88fc67..2f7d53a9e 100644 --- a/kernel/model/tree.go +++ b/kernel/model/tree.go @@ -157,7 +157,7 @@ func loadTreeByBlockID(id string) (ret *parse.Tree, err error) { bt := treenode.GetBlockTree(id) if nil == bt { - if task.ContainIndexTask() { + if task.ContainIndexTask(task.DatabaseIndex, task.DatabaseIndexFull) { err = ErrIndexing return } diff --git a/kernel/task/queue.go b/kernel/task/queue.go index df5536341..a9731a7ac 100644 --- a/kernel/task/queue.go +++ b/kernel/task/queue.go @@ -18,12 +18,13 @@ package task import ( "context" - "github.com/siyuan-note/siyuan/kernel/util" "reflect" "sync" "time" + "github.com/88250/gulu" "github.com/siyuan-note/logging" + "github.com/siyuan-note/siyuan/kernel/util" ) var ( @@ -84,9 +85,12 @@ const ( ReloadUI = "task.reload.ui" // 重载 UI ) -func ContainIndexTask() bool { +func ContainIndexTask(action string, moreActions ...string) bool { + actions := append(moreActions, action) + actions = gulu.Str.RemoveDuplicatedElem(actions) + for _, task := range taskQueue { - if DatabaseIndex == task.Action || DatabaseIndexFull == task.Action { + if gulu.Str.Contains(task.Action, actions) { return true } }