mirror of
https://github.com/ajayyy/SponsorBlockServer.git
synced 2025-12-12 06:27:10 +03:00
Add max redis response time for reads
This commit is contained in:
@@ -165,6 +165,7 @@ addDefaults(config, {
|
||||
commandsQueueMaxLength: 3000,
|
||||
stopWritingAfterResponseTime: 50,
|
||||
responseTimePause: 1000,
|
||||
maxReadResponseTime: 500,
|
||||
disableHashCache: false,
|
||||
clientCacheSize: 2000,
|
||||
useCompression: false,
|
||||
|
||||
@@ -10,6 +10,7 @@ interface RedisConfig extends redis.RedisClientOptions {
|
||||
maxWriteConnections: number;
|
||||
stopWritingAfterResponseTime: number;
|
||||
responseTimePause: number;
|
||||
maxReadResponseTime: number;
|
||||
disableHashCache: boolean;
|
||||
clientCacheSize: number;
|
||||
useCompression: boolean;
|
||||
|
||||
@@ -222,6 +222,12 @@ if (config.redis?.enabled) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (config.redis.maxReadResponseTime && activeRequests > maxStoredTimes
|
||||
&& readResponseTime[readResponseTime.length - 1] > config.redis.maxReadResponseTime) {
|
||||
reject(new TooManyActiveConnectionsError(`Redis response time too high in general: ${readResponseTime[readResponseTime.length - 1]}ms with ${activeRequests} connections`));
|
||||
return;
|
||||
}
|
||||
|
||||
// For tracking
|
||||
if (!shouldClientCacheKey(key)) memoryCacheUncachedMisses++;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user