From 414f0b873d74031136a9a00264642987f6300f23 Mon Sep 17 00:00:00 2001 From: GoEdgeLab Date: Mon, 2 Oct 2023 19:48:11 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=BC=93=E5=AD=98=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/caches/list_file.go | 14 ++++++-------- internal/caches/storage_file.go | 2 ++ internal/ttlcache/cache_test.go | 6 +++++- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/internal/caches/list_file.go b/internal/caches/list_file.go index 729ca1c..c3f1e4e 100644 --- a/internal/caches/list_file.go +++ b/internal/caches/list_file.go @@ -72,15 +72,15 @@ func (this *FileList) Init() error { defer wg.Done() var db = NewFileListDB() - err = db.Open(dir + "/db-" + types.String(i) + ".db") - if err != nil { - lastErr = err + dbErr := db.Open(dir + "/db-" + types.String(i) + ".db") + if dbErr != nil { + lastErr = dbErr return } - err = db.Init() - if err != nil { - lastErr = err + dbErr = db.Init() + if dbErr != nil { + lastErr = dbErr return } @@ -120,8 +120,6 @@ func (this *FileList) Add(hash string, item *Item) error { return err } - // 这里不增加点击量,以减少对数据库的操作次数 - this.memoryCache.Write(hash, 1, this.maxExpiresAtForMemoryCache(item.ExpiredAt)) if this.onAdd != nil { diff --git a/internal/caches/storage_file.go b/internal/caches/storage_file.go index 51e6abf..273a872 100644 --- a/internal/caches/storage_file.go +++ b/internal/caches/storage_file.go @@ -560,7 +560,9 @@ func (this *FileStorage) openWriter(key string, expiredAt int64, status int, hea if isNewCreated && existsFile { flags |= os.O_TRUNC } + fsutils.WriteBegin() writer, err := os.OpenFile(tmpPath, flags, 0666) + fsutils.WriteEnd() if err != nil { // TODO 检查在各个系统中的稳定性 if os.IsNotExist(err) { diff --git a/internal/ttlcache/cache_test.go b/internal/ttlcache/cache_test.go index 0a445fc..e90718c 100644 --- a/internal/ttlcache/cache_test.go +++ b/internal/ttlcache/cache_test.go @@ -40,10 +40,14 @@ func TestNewCache(t *testing.T) { } func TestCache_Memory(t *testing.T) { + if !testutils.IsSingleTesting() { + return + } + testutils.StartMemoryStats(t) var cache = NewCache() - var count = 2_000_000 + var count = 20_000_000 for i := 0; i < count; i++ { cache.Write("a"+strconv.Itoa(i), 1, time.Now().Unix()+3600) }