add max to caches to limit memory usage

This commit is contained in:
Barış Soner Uşaklı
2024-06-04 12:31:13 -04:00
parent 6f37825b1a
commit 300cf79c95
3 changed files with 18 additions and 7 deletions

View File

@@ -8,7 +8,10 @@ const user = require('../user');
const utils = require('../utils');
const TTLCache = require('../cache/ttl');
const failedWebfingerCache = TTLCache({ ttl: 1000 * 60 * 10 }); // 10 minutes
const failedWebfingerCache = TTLCache({
max: 5000,
ttl: 1000 * 60 * 10, // 10 minutes
});
const activitypub = module.parent.exports;

View File

@@ -16,7 +16,10 @@ const user = require('../user');
const activitypub = require('.');
const webfingerRegex = /^(@|acct:)?[\w\-]+@.+$/;
const webfingerCache = ttl({ ttl: 1000 * 60 * 60 * 24 }); // 24 hours
const webfingerCache = ttl({
max: 5000,
ttl: 1000 * 60 * 60 * 24, // 24 hours
});
const Helpers = module.exports;
@@ -59,8 +62,9 @@ Helpers.query = async (id) => {
return false;
}
if (webfingerCache.has(id)) {
return webfingerCache.get(id);
const cached = webfingerCache.get(id);
if (cached !== undefined) {
return cached;
}
const query = new URLSearchParams({ resource: uri });

View File

@@ -15,7 +15,10 @@ const batch = require('../batch');
const pubsub = require('../pubsub');
const analytics = require('../analytics');
const requestCache = ttl({ ttl: 1000 * 60 * 5 }); // 5 minutes
const requestCache = ttl({
max: 5000,
ttl: 1000 * 60 * 5, // 5 minutes
});
const ActivityPub = module.exports;
ActivityPub._constants = Object.freeze({
@@ -223,8 +226,9 @@ ActivityPub.verify = async (req) => {
ActivityPub.get = async (type, id, uri) => {
const cacheKey = [id, uri].join(';');
if (requestCache.has(cacheKey)) {
return requestCache.get(cacheKey);
const cached = requestCache.get(cacheKey);
if (cached !== undefined) {
return cached;
}
const keyData = await ActivityPub.getPrivateKey(type, id);