Skip to content
This repository was archived by the owner on Nov 10, 2025. It is now read-only.

Commit 9582eba

Browse files
committed
chore: sentinel
1 parent 1416bdf commit 9582eba

12 files changed

Lines changed: 60 additions & 108 deletions

File tree

apps/master/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
"@sentry/tracing": "^7.46.0",
1313
"cron": "^2.3.0",
1414
"debug": "^4.3.4",
15+
"ioredis": "^5.3.2",
1516
"mongodb": "^5.1.0",
1617
"redis": "^4.6.12",
1718
"source-map-support": "^0.5.21"

apps/master/src/index.ts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import * as Sentry from "@sentry/node";
66
import { Integrations } from "@sentry/tracing";
77
import debug from "debug";
88
import { MongoClient } from "mongodb";
9-
import { createClient } from "redis";
9+
import { Redis } from "ioredis";
1010

1111
import calculatePresenceUsage from "./util/calculatePresenceUsage.js";
1212
import updateScience from "./util/updateScience.js";
@@ -23,8 +23,13 @@ Sentry.init({
2323
integrations: [new Integrations.Mongo()]
2424
});
2525

26-
export const redis = createClient({
27-
url: process.env.REDIS_URL || "redis://localhost:6379"
26+
export const redis = new Redis({
27+
sentinels: process.env.REDIS_SENTINELS?.split(",")?.map(s => ({
28+
host: s.split(":")[0],
29+
port: 26379
30+
})),
31+
name: "mymaster",
32+
lazyConnect: true
2833
}),
2934
mongo = new MongoClient(process.env.MONGO_URL!, {
3035
appName: "PreMiD-API-Master"

apps/master/src/util/updateScience.ts

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ export default async function () {
55
key = "pmd-api.scienceUpdates";
66

77
log("Updating...");
8-
const scienceUpdates = await redis.hVals(key);
8+
const scienceUpdates = await redis.hvals(key);
99

1010
let invalidEntries: string[] = [],
1111
entries: {
@@ -35,7 +35,7 @@ export default async function () {
3535
}
3636

3737
if (invalidEntries.length) {
38-
await redis.hDel(key, invalidEntries);
38+
await redis.hdel(key, ...invalidEntries);
3939
log("Deleted %n invalid entries", invalidEntries.length);
4040
}
4141

@@ -53,10 +53,7 @@ export default async function () {
5353
}))
5454
);
5555

56-
await redis.hDel(
57-
key,
58-
entries.map(e => e.identifier)
59-
);
56+
await redis.hdel(key, ...entries.map(e => e.identifier));
6057

6158
log(
6259
"Inserted %s entries, Updated %s entries",
@@ -65,7 +62,7 @@ export default async function () {
6562
);
6663
} else log("No entries to update");
6764

68-
const delRedis = await redis.hVals("pmd-api.scienceDeletes");
65+
const delRedis = await redis.hvals("pmd-api.scienceDeletes");
6966

7067
let orMatch: any[] = [
7168
{
@@ -79,7 +76,7 @@ export default async function () {
7976
$or: orMatch
8077
});
8178

82-
if (delRedis.length) await redis.hDel("pmd-api.scienceDeletes", delRedis);
79+
if (delRedis.length) await redis.hdel("pmd-api.scienceDeletes", ...delRedis);
8380

8481
if (delRes.deletedCount) log("Deleted %s entries", delRes.deletedCount);
8582
}

apps/worker/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,14 @@
1919
"axios": "^0.27.0",
2020
"fastify": "^3.27.4",
2121
"graphql": "^16.3.0",
22+
"ioredis": "^5.3.2",
2223
"keyv": "^4.5.4",
2324
"keyv-anyredis": "^3.3.0",
2425
"language-flag-colors": "^2.1.1",
2526
"lodash": "^4.17.21",
2627
"mongodb": "^4.4.1",
2728
"mongodb-caching": "^1.1.0",
2829
"p-event": "^4.2.0",
29-
"redis": "^4.6.12",
3030
"source-map-support": "^0.5.21",
3131
"validator": "^13.7.0"
3232
},

apps/worker/src/index.ts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import {
1212
import { ApolloServer } from "apollo-server-fastify";
1313
import responseCachePlugin from "apollo-server-plugin-response-cache";
1414
import fastify, { FastifyContext, FastifyReply, FastifyRequest } from "fastify";
15-
import { createClient, createCluster } from "redis";
15+
import { Redis } from "ioredis";
1616
import { MongoClient } from "mongodb";
1717

1818
import appUpdate from "./generic/appUpdate";
@@ -43,8 +43,13 @@ if (process.env.SENTRY_DSN)
4343
export const mongodb = new MongoClient(process.env.MONGO_URL!, {
4444
appName: "PreMiD-API-Worker"
4545
}),
46-
redis = createClient({
47-
url: process.env.REDIS_URL || "redis://localhost:6379"
46+
redis = new Redis({
47+
sentinels: process.env.REDIS_SENTINELS?.split(",")?.map(s => ({
48+
host: s.split(":")[0],
49+
port: 26379
50+
})),
51+
name: "mymaster",
52+
lazyConnect: true
4853
}),
4954
baseRedisCache = new BaseRedisCache({
5055
//@ts-ignore

apps/worker/src/util/keyv.ts

Lines changed: 0 additions & 85 deletions
This file was deleted.

apps/worker/src/v2/deleteScience.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ const handler: RouteHandlerMethod<
1818
if (!validator.isUUID(params.identifier, "4"))
1919
return res.status(400).send("identifier must be a UUID v4.");
2020

21-
await redis.HSET(
21+
await redis.hset(
2222
"pmd-api.scienceDeletes",
2323
params.identifier,
2424
params.identifier

apps/worker/src/v3/fields/addScience.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ export async function resolver(
3737
}
3838
};
3939

40-
await redis.HSET(
40+
await redis.hset(
4141
"pmd-api.scienceUpdates",
4242
params.identifier,
4343
JSON.stringify(data)

apps/worker/src/v3/fields/deleteScience.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ export async function resolver(_: any, params: { identifier: string }) {
1818
if (!validator.isUUID(params.identifier, "4"))
1919
return new GraphQLError("identifier must be a UUID v4.");
2020

21-
await redis.HSET(
21+
await redis.hset(
2222
"pmd-api.scienceDeletes",
2323
params.identifier,
2424
params.identifier

apps/worker/src/v4/fields/addScience.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ export async function resolver(
3737
}
3838
};
3939

40-
await redis.HSET(
40+
await redis.hset(
4141
"pmd-api.scienceUpdates",
4242
params.identifier,
4343
JSON.stringify(data)

0 commit comments

Comments
 (0)