summaryrefslogtreecommitdiff
path: root/packages/backend/src/GlobalModule.ts
diff options
context:
space:
mode:
authorMarie <github@yuugi.dev>2025-02-18 23:27:56 +0000
committerMarie <github@yuugi.dev>2025-02-18 23:27:56 +0000
commitd67eefaaf5639ec5be3cb3ade76e0533af869cd1 (patch)
tree0df3a86df7496df4568e8bfff6ac33000184864d /packages/backend/src/GlobalModule.ts
parentmerge: fix time zone for CustomEmojiService test (!909) (diff)
parentimplement redisForRateLimit (diff)
downloadsharkey-d67eefaaf5639ec5be3cb3ade76e0533af869cd1.tar.gz
sharkey-d67eefaaf5639ec5be3cb3ade76e0533af869cd1.tar.bz2
sharkey-d67eefaaf5639ec5be3cb3ade76e0533af869cd1.zip
merge: Add separate redis for rate limit (!908)
View MR for information: https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/908 Approved-by: dakkar <dakkar@thenautilus.net> Approved-by: Marie <github@yuugi.dev>
Diffstat (limited to 'packages/backend/src/GlobalModule.ts')
-rw-r--r--packages/backend/src/GlobalModule.ts14
1 files changed, 12 insertions, 2 deletions
diff --git a/packages/backend/src/GlobalModule.ts b/packages/backend/src/GlobalModule.ts
index ace7f7841c..7ca566477d 100644
--- a/packages/backend/src/GlobalModule.ts
+++ b/packages/backend/src/GlobalModule.ts
@@ -92,6 +92,14 @@ const $redisForReactions: Provider = {
inject: [DI.config],
};
+const $redisForRateLimit: Provider = {
+ provide: DI.redisForRateLimit,
+ useFactory: (config: Config) => {
+ return new Redis.Redis(config.redisForRateLimit);
+ },
+ inject: [DI.config],
+};
+
const $meta: Provider = {
provide: DI.meta,
useFactory: async (db: DataSource, redisForSub: Redis.Redis) => {
@@ -152,8 +160,8 @@ const $meta: Provider = {
@Global()
@Module({
imports: [RepositoryModule],
- providers: [$config, $db, $meta, $meilisearch, $redis, $redisForPub, $redisForSub, $redisForTimelines, $redisForReactions],
- exports: [$config, $db, $meta, $meilisearch, $redis, $redisForPub, $redisForSub, $redisForTimelines, $redisForReactions, RepositoryModule],
+ providers: [$config, $db, $meta, $meilisearch, $redis, $redisForPub, $redisForSub, $redisForTimelines, $redisForReactions, $redisForRateLimit],
+ exports: [$config, $db, $meta, $meilisearch, $redis, $redisForPub, $redisForSub, $redisForTimelines, $redisForReactions, $redisForRateLimit, RepositoryModule],
})
export class GlobalModule implements OnApplicationShutdown {
constructor(
@@ -163,6 +171,7 @@ export class GlobalModule implements OnApplicationShutdown {
@Inject(DI.redisForSub) private redisForSub: Redis.Redis,
@Inject(DI.redisForTimelines) private redisForTimelines: Redis.Redis,
@Inject(DI.redisForReactions) private redisForReactions: Redis.Redis,
+ @Inject(DI.redisForRateLimit) private redisForRateLimit: Redis.Redis,
) { }
public async dispose(): Promise<void> {
@@ -176,6 +185,7 @@ export class GlobalModule implements OnApplicationShutdown {
this.redisForSub.disconnect(),
this.redisForTimelines.disconnect(),
this.redisForReactions.disconnect(),
+ this.redisForRateLimit.disconnect(),
]);
}