From 671333ff9148309b37323fa3c08a6fc4924de0f3 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Sun, 17 Nov 2024 09:35:34 +0800 Subject: [PATCH] :art: Automatic purge for local data repo https://github.com/siyuan-note/siyuan/issues/13091 --- kernel/model/repository.go | 26 +++++++------------------- 1 file changed, 7 insertions(+), 19 deletions(-) diff --git a/kernel/model/repository.go b/kernel/model/repository.go index 0e054d814cb..875c47e9e78 100644 --- a/kernel/model/repository.go +++ b/kernel/model/repository.go @@ -94,26 +94,26 @@ func autoPurgeRepo(cron bool) { now := time.Now() - dateGroupedIndexes := map[string][]*dejavu.Log{} // 按照日期分组 + dateGroupedIndexes := map[string][]*entity.Index{} // 按照日期分组 // 收集指定日期内需要保留的索引 var date string page := 1 for { - indexLogs, pageCount, _, err := repo.GetIndexLogs(page, 512) + indexes, pageCount, _, err := repo.GetIndexes(page, 512) if nil != err { logging.LogErrorf("get data repo index logs failed: %s", err) return } - if 1 > len(indexLogs) { + if 1 > len(indexes) { break } tooOld := false - for _, index := range indexLogs { + for _, index := range indexes { if now.UnixMilli()-index.Created <= int64(Conf.Repo.IndexRetentionDays)*24*60*60*1000 { date = time.UnixMilli(index.Created).Format("2006-01-02") if _, ok := dateGroupedIndexes[date]; !ok { - dateGroupedIndexes[date] = []*dejavu.Log{} + dateGroupedIndexes[date] = []*entity.Index{} } dateGroupedIndexes[date] = append(dateGroupedIndexes[date], index) } else { @@ -148,7 +148,7 @@ func autoPurgeRepo(cron bool) { } for _, keepIndex := range keepIndexes.Values() { - retentionIndexIDs = append(retentionIndexIDs, keepIndex.(*dejavu.Log).ID) + retentionIndexIDs = append(retentionIndexIDs, keepIndex.(*entity.Index).ID) } } @@ -158,16 +158,7 @@ func autoPurgeRepo(cron bool) { return } - stat, err := repo.Purge(retentionIndexIDs...) - if err != nil { - return - } - - deletedIndexes := stat.Indexes - deletedObjects := stat.Objects - deletedSize := humanize.BytesCustomCeil(uint64(stat.Size), 2) - logging.LogInfof("purge data repo completed [ellapsed=%.2fs, indexes=%d, objects=%d, size=%s]", - time.Since(now).Seconds(), deletedIndexes, deletedObjects, deletedSize) + _, err = repo.Purge(retentionIndexIDs...) } func GetRepoFile(fileID string) (ret []byte, p string, err error) { @@ -629,7 +620,6 @@ func PurgeRepo() (err error) { return } - now := time.Now() stat, err := repo.Purge() if err != nil { return @@ -638,8 +628,6 @@ func PurgeRepo() (err error) { deletedIndexes := stat.Indexes deletedObjects := stat.Objects deletedSize := humanize.BytesCustomCeil(uint64(stat.Size), 2) - logging.LogInfof("purge data repo completed [ellapsed=%.2fs, indexes=%d, objects=%d, size=%s]", - time.Since(now).Seconds(), deletedIndexes, deletedObjects, deletedSize) msg = fmt.Sprintf(Conf.Language(203), deletedIndexes, deletedObjects, deletedSize) util.PushMsg(msg, 7000) return