mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-12-17 23:20:13 +01:00
🎨 改进内核任务调度机制提升稳定性 https://github.com/siyuan-note/siyuan/issues/7113
This commit is contained in:
parent
492389470f
commit
c40355e47f
3 changed files with 16 additions and 63 deletions
|
|
@ -49,6 +49,7 @@ import (
|
|||
"github.com/siyuan-note/siyuan/kernel/cache"
|
||||
"github.com/siyuan-note/siyuan/kernel/conf"
|
||||
"github.com/siyuan-note/siyuan/kernel/sql"
|
||||
"github.com/siyuan-note/siyuan/kernel/task"
|
||||
"github.com/siyuan-note/siyuan/kernel/treenode"
|
||||
"github.com/siyuan-note/siyuan/kernel/util"
|
||||
"github.com/studio-b12/gowebdav"
|
||||
|
|
@ -501,16 +502,21 @@ func InitRepoKey() (err error) {
|
|||
return
|
||||
}
|
||||
|
||||
var isCheckoutRepo bool
|
||||
func CheckoutRepo(id string) {
|
||||
task.PrependTask(task.RepoCheckout, checkoutRepo, id)
|
||||
}
|
||||
|
||||
func CheckoutRepo(id string) (err error) {
|
||||
func checkoutRepo(id string) {
|
||||
var err error
|
||||
if 1 > len(Conf.Repo.Key) {
|
||||
err = errors.New(Conf.Language(26))
|
||||
util.PushErrMsg(Conf.Language(26), 7000)
|
||||
return
|
||||
}
|
||||
|
||||
repo, err := newRepository()
|
||||
if nil != err {
|
||||
logging.LogErrorf("new repository failed: %s", err)
|
||||
util.PushErrMsg(Conf.Language(141), 7000)
|
||||
return
|
||||
}
|
||||
|
||||
|
|
@ -525,23 +531,16 @@ func CheckoutRepo(id string) (err error) {
|
|||
Conf.Sync.Enabled = false
|
||||
Conf.Save()
|
||||
|
||||
if util.IsMutexLocked(&syncLock) {
|
||||
err = errors.New("sync is running, please try again later")
|
||||
return
|
||||
}
|
||||
|
||||
isCheckoutRepo = true
|
||||
defer func() {
|
||||
isCheckoutRepo = false
|
||||
}()
|
||||
|
||||
_, _, err = repo.Checkout(id, map[string]interface{}{eventbus.CtxPushMsg: eventbus.CtxPushMsgToStatusBarAndProgress})
|
||||
if nil != err {
|
||||
logging.LogErrorf("checkout repository failed: %s", err)
|
||||
util.PushClearProgress()
|
||||
util.PushErrMsg(Conf.Language(141), 7000)
|
||||
return
|
||||
}
|
||||
|
||||
FullReindex()
|
||||
|
||||
if syncEnabled {
|
||||
func() {
|
||||
time.Sleep(5 * time.Second)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue