From 44bfc7d0d52817b3e8da1e4b207aaadb3e02cd08 Mon Sep 17 00:00:00 2001 From: Xiangze Li Date: Wed, 23 Oct 2024 01:46:00 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E6=AD=A3=E6=B8=85=E7=90=86?= =?UTF-8?q?=E5=A4=87=E4=BB=BD=E7=9A=84=E6=8C=89=E6=97=B6=E9=97=B4=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F=E4=B8=8D=E6=AD=A3=E7=A1=AE=E7=94=9F=E6=95=88=E9=97=AE?= =?UTF-8?q?=E9=A2=98=20(#1084)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dice/dice_backup.go | 18 +++++++++++++++--- dice/dice_manager.go | 7 ++----- dice/ext.go | 2 -- dice/platform_adapter_gocq.go | 12 +++--------- go.mod | 2 +- 5 files changed, 21 insertions(+), 20 deletions(-) diff --git a/dice/dice_backup.go b/dice/dice_backup.go index 315e2bf6..b5b10833 100644 --- a/dice/dice_backup.go +++ b/dice/dice_backup.go @@ -17,6 +17,7 @@ import ( "sealdice-core/dice/model" "sealdice-core/utils" "sealdice-core/utils/crypto" + log "sealdice-core/utils/kratos" ) const BackupDir = "./backups" @@ -341,7 +342,7 @@ func (dm *DiceManager) BackupClean(fromAuto bool) (err error) { return nil } - // fmt.Println("开始定时清理备份", fromAuto) + log.Info("开始清理备份文件") backupDir, err := os.Open(BackupDir) if err != nil { @@ -370,29 +371,40 @@ func (dm *DiceManager) BackupClean(fromAuto bool) (err error) { sort.Sort(utils.ByModtime(fileInfos)) var fileInfoOld []os.FileInfo + + logMsg := strings.Builder{} + logMsg.WriteString(fmt.Sprintf("现有备份文件 %d 个, 清理模式为 ", len(fileInfos))) + switch dm.BackupCleanStrategy { case BackupCleanStrategyByCount: + logMsg.WriteString(fmt.Sprintf("保留一定数量(%d)", dm.BackupCleanKeepCount)) if len(fileInfos) > dm.BackupCleanKeepCount { fileInfoOld = fileInfos[:len(fileInfos)-dm.BackupCleanKeepCount] } case BackupCleanStrategyByTime: threshold := time.Now().Add(-dm.BackupCleanKeepDur) + logMsg.WriteString(fmt.Sprintf("保留一定时间(%v, %s)", dm.BackupCleanKeepDur, threshold.Format(time.DateTime))) idx, _ := sort.Find(len(fileInfos), func(i int) int { return threshold.Compare(fileInfos[i].ModTime()) }) - fileInfoOld = fileInfos[:idx+1] + fileInfoOld = fileInfos[:idx] default: // no-op } + logMsg.WriteString(fmt.Sprintf(", 有以下 %d 个将要被删除", len(fileInfoOld))) + errDel := []string{} - for _, fi := range fileInfoOld { + for i, fi := range fileInfoOld { + logMsg.WriteString(fmt.Sprintf("\n%d. %s", i+1, fi.Name())) errDelete := os.Remove(filepath.Join(BackupDir, fi.Name())) if errDelete != nil { errDel = append(errDel, errDelete.Error()) } } + log.Info(logMsg.String()) + if len(errDel) > 0 { return errors.New("error(s) occured when deleting files:\n" + strings.Join(errDel, "\n")) } diff --git a/dice/dice_manager.go b/dice/dice_manager.go index 6e9cee06..6d52c0f8 100644 --- a/dice/dice_manager.go +++ b/dice/dice_manager.go @@ -305,14 +305,11 @@ func (dm *DiceManager) ResetBackupClean() { dm.backupCleanCronID, err = dm.Cron.AddFunc(dm.BackupCleanCron, func() { errBackup := dm.BackupClean(false) if errBackup != nil { - fmt.Println("定时清理备份失败: ", errBackup.Error()) + log.Errorf("定时清理备份失败: %v", errBackup) } }) - if err != nil { - if len(dm.Dice) > 0 { - dm.Dice[0].Logger.Errorf("设定的备份清理cron有误: %q %v", dm.BackupCleanCron, err) - } + log.Errorf("设定的备份清理cron有误: %q %v", dm.BackupCleanCron, err) return } } diff --git a/dice/ext.go b/dice/ext.go index 88b45dca..04d0dd79 100644 --- a/dice/ext.go +++ b/dice/ext.go @@ -142,9 +142,7 @@ func (i *ExtInfo) StorageInit() error { // 使用互斥锁保护初始化过程,确保只初始化一次 i.dbMu.Lock() defer i.dbMu.Unlock() - d.Logger.Debugf("[扩展]:%s 正在尝试获取锁进行初始化", i.Name) if i.init { - d.Logger.Debug("[扩展]:初始化调用,但数据库已经加载") // 如果已经初始化,则直接返回 return nil } diff --git a/dice/platform_adapter_gocq.go b/dice/platform_adapter_gocq.go index 11c2a1e0..23b7f189 100644 --- a/dice/platform_adapter_gocq.go +++ b/dice/platform_adapter_gocq.go @@ -1099,17 +1099,11 @@ func (pa *PlatformAdapterGocq) Serve() int { } } - socket.OnBinaryMessage = func(data []byte, socket gowebsocket.Socket) { - log.Debug("Recieved binary data ", data) - } + socket.OnBinaryMessage = func(_ /* data */ []byte, _ /* socket */ gowebsocket.Socket) {} - socket.OnPingReceived = func(data string, socket gowebsocket.Socket) { - log.Debug("Recieved ping " + data) - } + socket.OnPingReceived = func(_ /* data */ string, _ /* socket */ gowebsocket.Socket) {} - socket.OnPongReceived = func(data string, socket gowebsocket.Socket) { - log.Debug("Recieved pong " + data) - } + socket.OnPongReceived = func(_ /* data */ string, _ /* socket */ gowebsocket.Socket) {} var lastDisconnect int64 socket.OnDisconnected = func(err error, socket gowebsocket.Socket) { diff --git a/go.mod b/go.mod index 7d451907..158c9747 100644 --- a/go.mod +++ b/go.mod @@ -49,6 +49,7 @@ require ( github.com/pelletier/go-toml/v2 v2.2.2 github.com/phuslu/log v1.0.88 github.com/pkg/errors v0.9.1 + github.com/qustavo/sqlhooks/v2 v2.1.0 github.com/robfig/cron/v3 v3.0.1 github.com/sacOO7/gowebsocket v0.0.0-20221109081133-70ac927be105 github.com/sahilm/fuzzy v0.1.1 @@ -140,7 +141,6 @@ require ( github.com/nu7hatch/gouuid v0.0.0-20131221200532-179d4d0c4d8d // indirect github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c // indirect github.com/pdfcpu/pdfcpu v0.8.1 // indirect - github.com/qustavo/sqlhooks/v2 v2.1.0 // indirect github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect github.com/richardlehane/mscfb v1.0.4 // indirect github.com/richardlehane/msoleps v1.0.3 // indirect