Skip to content

Commit 47ea6ae

Browse files
committed
Only check request time for readiness if cache has filled up
1 parent 063607f commit 47ea6ae

File tree

3 files changed

+9
-4
lines changed

3 files changed

+9
-4
lines changed

src/config.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,8 @@ addDefaults(config, {
194194
deArrowPaywall: false,
195195
useCacheForSegmentGroups: false,
196196
maxConnections: 100,
197-
maxResponseTime: 1000
197+
maxResponseTime: 1000,
198+
maxResponseTimeWhileLoadingCache: 2000
198199
});
199200
loadFromEnv(config);
200201
migrate(config);

src/routes/getReady.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,11 @@ export async function getReady(req: Request, res: Response, server: Server): Pro
1414
if (!connections
1515
|| (connections < config.maxConnections
1616
&& (!config.redis || redisStats.activeRequests < config.redis.maxConnections * 0.8)
17-
&& (!config.redis || redisStats.avgReadTime < config.maxResponseTime || redisStats.activeRequests < 1)
18-
&& (!config.postgres || postgresStats.activeRequests < config.postgres.maxActiveRequests * 0.8))
19-
&& (!config.postgres || postgresStats.avgReadTime < config.maxResponseTime)) {
17+
&& (!config.redis || redisStats.activeRequests < 1 || redisStats.avgReadTime < config.maxResponseTime
18+
|| (redisStats.memoryCacheSize < config.redis.clientCacheSize * 0.8 && redisStats.avgReadTime < config.maxResponseTimeWhileLoadingCache))
19+
&& (!config.postgres || postgresStats.activeRequests < config.postgres.maxActiveRequests * 0.8)
20+
&& (!config.postgres || postgresStats.avgReadTime < config.maxResponseTime
21+
|| (redisStats.memoryCacheSize < config.redis.clientCacheSize * 0.8 && postgresStats.avgReadTime < config.maxResponseTimeWhileLoadingCache)))) {
2022
return res.sendStatus(200);
2123
} else {
2224
return res.sendStatus(500);

src/types/config.model.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,8 @@ export interface SBSConfig {
107107
deArrowPaywall: boolean,
108108
useCacheForSegmentGroups: boolean
109109
maxConnections: number;
110+
maxResponseTime: number;
111+
maxResponseTimeWhileLoadingCache: number;
110112
}
111113

112114
export interface WebhookConfig {

0 commit comments

Comments
 (0)