Cool Thingy

This commit is contained in:
sent 2025-06-05 21:18:57 -07:00
parent ff50de3064
commit b622f3cb9b

View File

@ -1,4 +1,6 @@
import { LRUCache } from 'lru-cache';
import fs from "fs";
import path from "path";
import { LRUCache } from "lru-cache";
let maxKeys = 10_000;
let cache = makeCache(maxKeys);
@ -9,20 +11,14 @@ function makeCache(maxEntries) {
ttl: 60_000,
allowStale: false,
updateAgeOnGet: false,
updateAgeOnHas: false,
updateAgeOnHas: false
});
}
function scaleCache() {
const { heapUsed, heapTotal } = process.memoryUsage();
const freeHeapRatio = (heapTotal - heapUsed) / heapTotal;
const newMax = freeHeapRatio > 0.5
? 20_000
: freeHeapRatio < 0.2
? 5_000
: 10_000;
const newMax = freeHeapRatio > 0.5 ? 20_000 : freeHeapRatio < 0.2 ? 5_000 : 10_000;
if (newMax !== maxKeys) {
maxKeys = newMax;
cache = makeCache(maxKeys);
@ -33,4 +29,9 @@ function scaleCache() {
setInterval(scaleCache, 60_000);
scaleCache();
const watchPath = path.join(process.cwd(), "public");
fs.watch(watchPath, { recursive: true }, () => {
cache.clear();
});
export { cache };