♻️ Improve transaction flush

This commit is contained in:
Daniel 2024-10-22 19:20:44 +08:00
parent 72d1a059ac
commit 8dd0629b9c
No known key found for this signature in database
GPG key ID: 86211BA83DF03017
23 changed files with 69 additions and 82 deletions

View file

@ -376,7 +376,7 @@ func getRefText(c *gin.Context) {
}
id := arg["id"].(string)
model.WaitForWritingFiles()
model.FlushTxQueue()
refText := model.GetBlockRefText(id)
if "" == refText {
// 空块返回 id https://github.com/siyuan-note/siyuan/issues/10259

View file

@ -74,7 +74,7 @@ func moveOutlineHeading(c *gin.Context) {
}
model.PerformTransactions(&transactions)
model.WaitForWritingFiles()
model.FlushTxQueue()
ret.Data = transactions
broadcastTransactions(transactions)
@ -127,7 +127,7 @@ func appendDailyNoteBlock(c *gin.Context) {
}
model.PerformTransactions(&transactions)
model.WaitForWritingFiles()
model.FlushTxQueue()
ret.Data = transactions
broadcastTransactions(transactions)
@ -180,7 +180,7 @@ func prependDailyNoteBlock(c *gin.Context) {
}
model.PerformTransactions(&transactions)
model.WaitForWritingFiles()
model.FlushTxQueue()
ret.Data = transactions
broadcastTransactions(transactions)
@ -241,7 +241,7 @@ func unfoldBlock(c *gin.Context) {
}
model.PerformTransactions(&transactions)
model.WaitForWritingFiles()
model.FlushTxQueue()
broadcastTransactions(transactions)
}
@ -301,7 +301,7 @@ func foldBlock(c *gin.Context) {
}
model.PerformTransactions(&transactions)
model.WaitForWritingFiles()
model.FlushTxQueue()
broadcastTransactions(transactions)
}
@ -355,7 +355,7 @@ func moveBlock(c *gin.Context) {
}
model.PerformTransactions(&transactions)
model.WaitForWritingFiles()
model.FlushTxQueue()
ret.Data = transactions
broadcastTransactions(transactions)
@ -400,7 +400,7 @@ func appendBlock(c *gin.Context) {
}
model.PerformTransactions(&transactions)
model.WaitForWritingFiles()
model.FlushTxQueue()
ret.Data = transactions
broadcastTransactions(transactions)
@ -445,7 +445,7 @@ func prependBlock(c *gin.Context) {
}
model.PerformTransactions(&transactions)
model.WaitForWritingFiles()
model.FlushTxQueue()
ret.Data = transactions
broadcastTransactions(transactions)
@ -508,7 +508,7 @@ func insertBlock(c *gin.Context) {
}
model.PerformTransactions(&transactions)
model.WaitForWritingFiles()
model.FlushTxQueue()
ret.Data = transactions
broadcastTransactions(transactions)
@ -599,7 +599,7 @@ func updateBlock(c *gin.Context) {
}
model.PerformTransactions(&transactions)
model.WaitForWritingFiles()
model.FlushTxQueue()
ret.Data = transactions
broadcastTransactions(transactions)

View file

@ -223,7 +223,7 @@ func heading2Doc(c *gin.Context) {
return
}
model.WaitForWritingFiles()
model.FlushTxQueue()
luteEngine := util.NewLute()
tree, err := filesys.LoadTree(targetNotebook, targetPath, luteEngine)
if err != nil {
@ -268,7 +268,7 @@ func li2Doc(c *gin.Context) {
return
}
model.WaitForWritingFiles()
model.FlushTxQueue()
luteEngine := util.NewLute()
tree, err := filesys.LoadTree(targetNotebook, targetPath, luteEngine)
if err != nil {
@ -591,7 +591,7 @@ func createDoc(c *gin.Context) {
return
}
model.WaitForWritingFiles()
model.FlushTxQueue()
box := model.Conf.Box(notebook)
pushCreate(box, p, tree.Root.ID, arg)
@ -621,7 +621,7 @@ func createDailyNote(c *gin.Context) {
return
}
model.WaitForWritingFiles()
model.FlushTxQueue()
box := model.Conf.Box(notebook)
luteEngine := util.NewLute()
tree, err := filesys.LoadTree(box.ID, p, luteEngine)
@ -720,7 +720,7 @@ func createDocWithMd(c *gin.Context) {
}
ret.Data = id
model.WaitForWritingFiles()
model.FlushTxQueue()
box := model.Conf.Box(notebook)
b, _ := model.GetBlock(id, nil)
p := b.Path

View file

@ -325,7 +325,7 @@ func removeRiffCards(c *gin.Context) {
}
model.PerformTransactions(&transactions)
model.WaitForWritingFiles()
model.FlushTxQueue()
if "" != deckID {
deck := model.Decks[deckID]
@ -363,7 +363,7 @@ func addRiffCards(c *gin.Context) {
}
model.PerformTransactions(&transactions)
model.WaitForWritingFiles()
model.FlushTxQueue()
deck := model.Decks[deckID]
ret.Data = deckData(deck)

View file

@ -85,7 +85,7 @@ func performTransactions(c *gin.Context) {
func pushTransactions(app, session string, transactions []*model.Transaction) {
pushMode := util.PushModeBroadcastExcludeSelf
if 0 < len(transactions) && 0 < len(transactions[0].DoOperations) {
model.WaitForWritingFiles() // 等待文件写入完成,后续渲染才能读取到最新的数据
model.FlushTxQueue() // 等待文件写入完成,后续渲染才能读取到最新的数据
action := transactions[0].DoOperations[0].Action
isAttrViewTx := strings.Contains(strings.ToLower(action), "attrview")