[feat] 新增数据缓存标识

This commit is contained in:
2023-04-12 19:50:25 +08:00
parent e82ca51b08
commit 3deedff8bc
27 changed files with 108 additions and 73 deletions
+25 -5
View File
@@ -12,9 +12,29 @@ import (
"git.fsdpf.net/go/contracts"
"git.fsdpf.net/go/contracts/res_type"
"git.fsdpf.net/go/db"
"git.fsdpf.net/go/queue"
)
// 资源变更事件
const ResChangeEventTopic = "res-change-event-topic"
// 资源变更数据
const ResChangeRecordTopic = "res-change-record-topic"
type ResChangeEventTopicPayload struct {
Type string // insert | delete | update
Res Resource // 变更资源
Result sql.Result // 执行结果
}
type ResChangeRecordTopicPayload struct {
Type string // insert | delete | update
User contracts.User // 操作用户
Res Resource // 变更资源
Result sql.Result // 执行结果
Old []map[string]any // 旧数据
New []map[string]any // 新数据
}
// 资源
type Resource struct {
container *do.Injector
@@ -290,12 +310,12 @@ func (this Resource) onResEvent(builder *db.Builder) {
// 全局触发器
// 1. 清除系统缓存
if err := do.MustInvoke[contracts.Queue](this.container).Publish(contracts.ResQueueTopic, contracts.ResQueuePayload{
if err := do.MustInvoke[contracts.Queue](this.container).Publish(ResChangeEventTopic, ResChangeEventTopicPayload{
Type: t,
Res: this,
Result: result,
}); err != nil {
log.Println("Queue Publish Err:", contracts.ResQueueTopic, err)
log.Println("Queue Publish Err:", ResChangeEventTopic, err)
}
})
}
@@ -326,7 +346,7 @@ func (this Resource) onUserEvent(builder *db.Builder, user contracts.User) {
}
// 触发消息队列
if err := do.MustInvoke[contracts.Queue](this.container).Publish(contracts.UserQueuetTopic, contracts.UserQueuePayload{
if err := do.MustInvoke[contracts.Queue](this.container).Publish(ResChangeRecordTopic, ResChangeRecordTopicPayload{
Type: t,
User: user,
Res: this,
@@ -334,7 +354,7 @@ func (this Resource) onUserEvent(builder *db.Builder, user contracts.User) {
New: data,
Result: result,
}); err != nil {
log.Println("Queue Publish Err:", contracts.UserQueuetTopic, err)
log.Println("Queue Publish Err:", ResChangeRecordTopic, err)
}
})
}