From b434b8a4551a09b74a1c142b490597cb2b6ba08c Mon Sep 17 00:00:00 2001 From: Sergey Chubaryan Date: Thu, 20 Feb 2025 04:13:10 +0300 Subject: [PATCH] del cache cleanup items limit --- cmd/backend/app.go | 10 ++++------ pkg/cache/cache_inmem.go | 7 +------ pkg/cache/cache_inmem_sharded.go | 5 ++--- pkg/cache/interface.go | 2 +- 4 files changed, 8 insertions(+), 16 deletions(-) diff --git a/cmd/backend/app.go b/cmd/backend/app.go index 8a9641f..d9cfa49 100644 --- a/cmd/backend/app.go +++ b/cmd/backend/app.go @@ -129,19 +129,17 @@ func (a *App) Run(p RunParams) { // Periodically trigger cache cleanup go func() { - tmr := time.NewTicker(5 * time.Minute) + tmr := time.NewTicker(15 * time.Minute) defer tmr.Stop() - batchSize := 100 - for { select { case <-ctx.Done(): return case <-tmr.C: - userCache.CheckExpired(batchSize) - jwtCache.CheckExpired(batchSize) - linksCache.CheckExpired(batchSize) + userCache.CheckExpired() + jwtCache.CheckExpired() + linksCache.CheckExpired() } } }() diff --git a/pkg/cache/cache_inmem.go b/pkg/cache/cache_inmem.go index ea39127..09e80b2 100644 --- a/pkg/cache/cache_inmem.go +++ b/pkg/cache/cache_inmem.go @@ -78,7 +78,7 @@ func (c *cacheInmem[K, V]) Del(key K) { delete(c.data, key) } -func (c *cacheInmem[K, V]) CheckExpired(batchSize int) { +func (c *cacheInmem[K, V]) CheckExpired() { if len(c.data) == 0 { return } @@ -90,10 +90,5 @@ func (c *cacheInmem[K, V]) CheckExpired(batchSize int) { if time.Now().After(item.Expiration) { delete(c.data, key) } - - batchSize-- - if batchSize <= 0 { - return - } } } diff --git a/pkg/cache/cache_inmem_sharded.go b/pkg/cache/cache_inmem_sharded.go index 72b8f36..b95a39e 100644 --- a/pkg/cache/cache_inmem_sharded.go +++ b/pkg/cache/cache_inmem_sharded.go @@ -45,10 +45,9 @@ func (c *cacheInmemSharded[V]) Del(key string) { c.getShard(key).Del(key) } -func (c *cacheInmemSharded[V]) CheckExpired(batchSize int) { - size := batchSize / c.info.Shards +func (c *cacheInmemSharded[V]) CheckExpired() { for _, shard := range c.shards { - shard.CheckExpired(size) + shard.CheckExpired() } } diff --git a/pkg/cache/interface.go b/pkg/cache/interface.go index 9665b73..3dea428 100644 --- a/pkg/cache/interface.go +++ b/pkg/cache/interface.go @@ -7,5 +7,5 @@ type Cache[K comparable, V any] interface { Set(key K, value V, exp Expiration) Del(key K) - CheckExpired(batchSize int) + CheckExpired() }