diff --git a/packages/backend/src/misc/cache.ts b/packages/backend/src/misc/cache.ts index 56fc94f5ac..f18838033b 100644 --- a/packages/backend/src/misc/cache.ts +++ b/packages/backend/src/misc/cache.ts @@ -180,6 +180,11 @@ export class RedisSingleCache { await this.redisClient.del(`singlecache:${this.name}`); } + @bindThis + public clear(): void { + this.memoryCache.delete(); + } + /** * キャッシュがあればそれを返し、無ければfetcherを呼び出して結果をキャッシュ&返します * This awaits the call to Redis to ensure that the write succeeded, which is important for a few reasons: @@ -208,6 +213,12 @@ export class RedisSingleCache { // TODO: イベント発行して他プロセスのメモリキャッシュも更新できるようにする } + + @bindThis + public dispose(): void { + this.clear(); + } +} } // TODO: メモリ節約のためあまり参照されないキーを定期的に削除できるようにする? @@ -378,6 +389,11 @@ export class MemorySingleCache { this.cachedAt = null; } + @bindThis + public clear() { + this.delete(); + } + /** * キャッシュがあればそれを返し、無ければfetcherを呼び出して結果をキャッシュ&返します * optional: キャッシュが存在してもvalidatorでfalseを返すとキャッシュ無効扱いにします @@ -429,4 +445,9 @@ export class MemorySingleCache { } return value; } + + @bindThis + public dispose() { + this.clear(); + } }