Skip to content

Commit 55ff323

Browse files
committed
Catch redis exceptions
1 parent ed221c8 commit 55ff323

File tree

3 files changed

+11
-10
lines changed

3 files changed

+11
-10
lines changed

src/middleware/requestRateLimit.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,10 @@ import { RateLimitConfig } from "../types/config.model";
66
import { Request } from "express";
77
import { isUserVIP } from "../utils/isUserVIP";
88
import { UserID } from "../types/user.model";
9-
import RedisStore from "rate-limit-redis";
9+
import RedisStore, { RedisReply } from "rate-limit-redis";
1010
import redis from "../utils/redis";
1111
import { config } from "../config";
12+
import { Logger } from "../utils/logger";
1213

1314
export function rateLimitMiddleware(limitConfig: RateLimitConfig, getUserID?: (req: Request) => UserID): RateLimitRequestHandler {
1415
return rateLimit({
@@ -29,7 +30,7 @@ export function rateLimitMiddleware(limitConfig: RateLimitConfig, getUserID?: (r
2930
}
3031
},
3132
store: config.redis?.enabled ? new RedisStore({
32-
sendCommand: (...args: string[]) => redis.sendCommand(args),
33+
sendCommand: (...args: string[]) => redis.sendCommand(args).catch((err) => Logger.error(err)) as Promise<RedisReply>,
3334
}) : null,
3435
});
3536
}

src/utils/getHashCache.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ async function getFromRedis<T extends string>(key: HashedValue): Promise<T & Has
3030

3131
// Otherwise, calculate it
3232
const data = getHash(key, cachedHashTimes);
33-
redis.set(key, data);
33+
redis.set(key, data).catch((err) => Logger.error(err));
3434

3535
return data as T & HashedValue;
3636
}

src/utils/queryCacher.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ async function get<T>(fetchFromDB: () => Promise<T>, key: string): Promise<T> {
1616

1717
const data = await fetchFromDB();
1818

19-
redis.set(key, JSON.stringify(data));
19+
redis.set(key, JSON.stringify(data)).catch((err) => Logger.error(err));
2020

2121
return data;
2222
}
@@ -67,7 +67,7 @@ async function getAndSplit<T, U extends string>(fetchFromDB: (values: U[]) => Pr
6767
}
6868

6969
for (const key in newResults) {
70-
redis.set(key, JSON.stringify(newResults[key]));
70+
redis.set(key, JSON.stringify(newResults[key])).catch((err) => Logger.error(err));
7171
}
7272
});
7373
}
@@ -77,16 +77,16 @@ async function getAndSplit<T, U extends string>(fetchFromDB: (values: U[]) => Pr
7777

7878
function clearSegmentCache(videoInfo: { videoID: VideoID; hashedVideoID: VideoIDHash; service: Service; userID?: UserID; }): void {
7979
if (videoInfo) {
80-
redis.del(skipSegmentsKey(videoInfo.videoID, videoInfo.service));
81-
redis.del(skipSegmentGroupsKey(videoInfo.videoID, videoInfo.service));
82-
redis.del(skipSegmentsHashKey(videoInfo.hashedVideoID, videoInfo.service));
83-
if (videoInfo.userID) redis.del(reputationKey(videoInfo.userID));
80+
redis.del(skipSegmentsKey(videoInfo.videoID, videoInfo.service)).catch((err) => Logger.error(err));
81+
redis.del(skipSegmentGroupsKey(videoInfo.videoID, videoInfo.service)).catch((err) => Logger.error(err));
82+
redis.del(skipSegmentsHashKey(videoInfo.hashedVideoID, videoInfo.service)).catch((err) => Logger.error(err));
83+
if (videoInfo.userID) redis.del(reputationKey(videoInfo.userID)).catch((err) => Logger.error(err));
8484
}
8585
}
8686

8787
function clearRatingCache(videoInfo: { hashedVideoID: VideoIDHash; service: Service;}): void {
8888
if (videoInfo) {
89-
redis.del(ratingHashKey(videoInfo.hashedVideoID, videoInfo.service));
89+
redis.del(ratingHashKey(videoInfo.hashedVideoID, videoInfo.service)).catch((err) => Logger.error(err));
9090
}
9191
}
9292

0 commit comments

Comments
 (0)