Skip to content

Commit 1a45c29

Browse files
committed
refactor: replace messaging-module with nestjs/microservices
1 parent ebcc7f0 commit 1a45c29

File tree

17 files changed

+188
-183
lines changed

17 files changed

+188
-183
lines changed

libs/contract/constants/index.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ export * from './errors';
44
export * from './events';
55
export * from './headers';
66
export * from './hosts';
7-
export * from './messaging';
87
export * from './metrics';
98
export * from './nodes';
109
export * from './oauth2';

libs/contract/constants/messaging/index.ts

Lines changed: 0 additions & 1 deletion
This file was deleted.

libs/contract/constants/messaging/messaging.constants.ts

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

package-lock.json

Lines changed: 62 additions & 35 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,6 @@
5050
"@exact-team/telegram-oauth2": "0.0.9",
5151
"@grammyjs/parse-mode": "1.11.1",
5252
"@kastov/grammy-nestjs": "0.4.2",
53-
"@kastov/messaging-redis-extension": "1.3.1",
5453
"@kastov/nestjs-prisma-kysely": "0.1.2",
5554
"@kastov/request-ip": "^0.0.5",
5655
"@keyv/redis": "^5.1.4",
@@ -65,13 +64,13 @@
6564
"@nestjs/cqrs": "11.0.3",
6665
"@nestjs/event-emitter": "3.0.1",
6766
"@nestjs/jwt": "11.0.1",
67+
"@nestjs/microservices": "^11.1.9",
6868
"@nestjs/passport": "11.0.5",
6969
"@nestjs/platform-express": "11.1.9",
7070
"@nestjs/schedule": "6.0.1",
7171
"@nestjs/serve-static": "5.0.4",
7272
"@nestjs/swagger": "11.2.3",
7373
"@nestjs/terminus": "^11.0.0",
74-
"@nestjstools/messaging": "^2.22.0",
7574
"@noble/post-quantum": "^0.5.2",
7675
"@peculiar/webcrypto": "^1.5.0",
7776
"@peculiar/x509": "^1.14.2",

src/bin/processors/processors.root.module.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,21 +5,21 @@ import { ClsModule } from 'nestjs-cls';
55
import { QueueModule } from 'src/queue/queue.module';
66

77
import { TransactionalAdapterPrisma } from '@nestjs-cls/transactional-adapter-prisma';
8+
import { ConditionalModule, ConfigModule, ConfigService } from '@nestjs/config';
89
import { Logger, OnApplicationShutdown, Module } from '@nestjs/common';
910
import { ClsPluginTransactional } from '@nestjs-cls/transactional';
10-
import { ConfigModule, ConfigService } from '@nestjs/config';
1111
import { EventEmitterModule } from '@nestjs/event-emitter';
1212
import { CacheModule } from '@nestjs/cache-manager';
1313

1414
import { validateEnvConfig } from '@common/utils/validate-env-config';
1515
import { PrismaService } from '@common/database/prisma.service';
1616
import { configSchema, Env } from '@common/config/app-config';
17+
import { RedisProducerModule } from '@common/microservices';
1718
import { getRedisConnectionOptions } from '@common/utils';
19+
import { isProcessor } from '@common/utils/startup-app';
1820
import { PrismaModule } from '@common/database';
1921
import { AxiosModule } from '@common/axios';
2022

21-
import { MessagingModules } from '@integration-modules/messaging-modules';
22-
2323
import { RemnawaveModules } from '@modules/remnawave-backend.modules';
2424

2525
@Module({
@@ -75,7 +75,6 @@ import { RemnawaveModules } from '@modules/remnawave-backend.modules';
7575

7676
RemnawaveModules,
7777
QueueModule,
78-
MessagingModules,
7978
CacheModule.registerAsync({
8079
imports: [ConfigModule],
8180
inject: [ConfigService],
@@ -103,6 +102,7 @@ import { RemnawaveModules } from '@modules/remnawave-backend.modules';
103102
};
104103
},
105104
}),
105+
ConditionalModule.registerWhen(RedisProducerModule, () => isProcessor()),
106106
],
107107
controllers: [],
108108
})

src/bin/scheduler/scheduler.root.module.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ import { PrismaModule } from '@common/database';
1919
import { AxiosModule } from '@common/axios';
2020

2121
import { PrometheusReporterModule } from '@integration-modules/prometheus-reporter/prometheus-reporter.module';
22-
import { MessagingModules } from '@integration-modules/messaging-modules';
2322
import { HealthModule } from '@integration-modules/health/health.module';
2423

2524
import { RemnawaveModules } from '@modules/remnawave-backend.modules';
@@ -61,7 +60,6 @@ import { SchedulerModule } from '@scheduler/scheduler.module';
6160
ScheduleModule.forRoot(),
6261
SchedulerModule,
6362
QueueModule,
64-
MessagingModules,
6563
HealthModule,
6664
CacheModule.registerAsync({
6765
imports: [ConfigModule],

src/bin/scheduler/scheduler.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,12 @@ import { json } from 'express';
1313
import helmet from 'helmet';
1414
import dayjs from 'dayjs';
1515

16+
import { MicroserviceOptions, Transport } from '@nestjs/microservices';
1617
import { ConfigService } from '@nestjs/config';
1718
import { NestFactory } from '@nestjs/core';
1819

1920
import { NotFoundExceptionFilter } from '@common/exception/not-found-exception.filter';
21+
import { getRedisConnectionOptions } from '@common/utils/get-redis-connection-options';
2022
import { WorkerRoutesGuard } from '@common/guards/worker-routes/worker-routes.guard';
2123
import { customLogFilter } from '@common/utils/filter-logs/filter-logs';
2224
import { isDevelopment } from '@common/utils/startup-app';
@@ -93,6 +95,23 @@ async function bootstrap(): Promise<void> {
9395
new WorkerRoutesGuard({ allowedPaths: [METRICS_ROOT, BULLBOARD_ROOT, HEALTH_ROOT] }),
9496
);
9597

98+
app.connectMicroservice<MicroserviceOptions>({
99+
transport: Transport.REDIS,
100+
options: {
101+
...getRedisConnectionOptions(
102+
config.get<string>('REDIS_SOCKET'),
103+
config.get<string>('REDIS_HOST'),
104+
config.get<number>('REDIS_PORT'),
105+
'ioredis',
106+
),
107+
db: config.getOrThrow<number>('REDIS_DB'),
108+
password: config.get<string | undefined>('REDIS_PASSWORD'),
109+
keyPrefix: 'nmicro:',
110+
},
111+
});
112+
113+
await app.startAllMicroservices();
114+
96115
app.enableShutdownHooks();
97116

98117
await app.listen(Number(config.getOrThrow<string>('METRICS_PORT')));

src/common/microservices/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
export * from './microservices-names.constant';
2+
export * from './redis-producer.module';
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
export const MICROSERVICES_NAMES = {
2+
REDIS_PRODUCER: 'REDIS_PRODUCER',
3+
} as const;
4+
5+
export type TMicroservicesNames = typeof MICROSERVICES_NAMES;
6+
7+
export const MESSAGING_NAMES = {
8+
NODE_METRICS: 'NODE_METRICS',
9+
} as const;
10+
11+
export type TMessagingNames = typeof MESSAGING_NAMES;

0 commit comments

Comments
 (0)