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) }