diff --git a/src/common/metrics/api.metrics.module.ts b/src/common/metrics/api.metrics.module.ts index 452f287cc..69b99cb3c 100644 --- a/src/common/metrics/api.metrics.module.ts +++ b/src/common/metrics/api.metrics.module.ts @@ -1,6 +1,5 @@ import { MetricsModule } from "@multiversx/sdk-nestjs-monitoring"; import { Global, Module } from "@nestjs/common"; -import { EventEmitterModule } from "@nestjs/event-emitter"; import { ApiMetricsService } from "./api.metrics.service"; import { ApiConfigModule } from "src/common/api-config/api.config.module"; import { GatewayModule } from "src/common/gateway/gateway.module"; @@ -10,7 +9,6 @@ import { ProtocolModule } from "src/common/protocol/protocol.module"; @Module({ imports: [ MetricsModule, - EventEmitterModule.forRoot({ maxListeners: 1 }), ApiConfigModule, GatewayModule, ProtocolModule, diff --git a/src/common/pubsub/pub.sub.listener.module.ts b/src/common/pubsub/pub.sub.listener.module.ts index 7ca1a80c0..7c72bedb2 100644 --- a/src/common/pubsub/pub.sub.listener.module.ts +++ b/src/common/pubsub/pub.sub.listener.module.ts @@ -3,9 +3,13 @@ import { DynamicModuleUtils } from 'src/utils/dynamic.module.utils'; import { PubSubListenerController } from './pub.sub.listener.controller'; import { LoggingModule } from '@multiversx/sdk-nestjs-common'; import { ApiMetricsModule } from 'src/common/metrics/api.metrics.module'; +import { EventEmitterModule } from '@nestjs/event-emitter'; +import { ScheduleModule } from '@nestjs/schedule'; @Module({ imports: [ + ScheduleModule.forRoot(), + EventEmitterModule.forRoot({ maxListeners: 1 }), DynamicModuleUtils.getCacheModule(), LoggingModule, ApiMetricsModule, diff --git a/src/common/rabbitmq/rabbitmq.module.ts b/src/common/rabbitmq/rabbitmq.module.ts index 11eea01dd..ec5e445ac 100644 --- a/src/common/rabbitmq/rabbitmq.module.ts +++ b/src/common/rabbitmq/rabbitmq.module.ts @@ -9,9 +9,13 @@ import { ApiConfigService } from '../api-config/api.config.service'; import { RabbitMqConsumer } from './rabbitmq.consumer'; import { RabbitMqNftHandlerService } from './rabbitmq.nft.handler.service'; import { RabbitMqTokenHandlerService } from './rabbitmq.token.handler.service'; +import { EventEmitterModule } from '@nestjs/event-emitter'; +import { ScheduleModule } from '@nestjs/schedule'; @Module({ imports: [ + ScheduleModule.forRoot(), + EventEmitterModule.forRoot({ maxListeners: 1 }), ApiConfigModule, NftModule, NftWorkerModule, diff --git a/src/common/websockets/web-socket-publisher-module.ts b/src/common/websockets/web-socket-publisher-module.ts index 3a7971915..a5b9c66df 100644 --- a/src/common/websockets/web-socket-publisher-module.ts +++ b/src/common/websockets/web-socket-publisher-module.ts @@ -4,9 +4,13 @@ import { WebSocketPublisherService } from "./web-socket-publisher-service"; import { WebSocketPublisherController } from "./web-socket-publisher-controller"; import { DynamicModuleUtils } from "src/utils/dynamic.module.utils"; import { ApiMetricsModule } from 'src/common/metrics/api.metrics.module'; +import { EventEmitterModule } from "@nestjs/event-emitter"; +import { ScheduleModule } from "@nestjs/schedule"; @Module({ imports: [ + ScheduleModule.forRoot(), + EventEmitterModule.forRoot({ maxListeners: 1 }), TransactionActionModule, ApiMetricsModule, ], diff --git a/src/crons/cache.warmer/cache.warmer.module.ts b/src/crons/cache.warmer/cache.warmer.module.ts index 1561d888b..005c887fb 100644 --- a/src/crons/cache.warmer/cache.warmer.module.ts +++ b/src/crons/cache.warmer/cache.warmer.module.ts @@ -12,10 +12,12 @@ import { PluginModule } from 'src/plugins/plugin.module'; import { TpsWarmerService } from '../tps/tps-warmer.service'; import { TpsModule } from 'src/endpoints/tps/tps.module'; import { ApiMetricsModule } from 'src/common/metrics/api.metrics.module'; +import { EventEmitterModule } from '@nestjs/event-emitter'; @Module({ imports: [ ScheduleModule.forRoot(), + EventEmitterModule.forRoot({ maxListeners: 1 }), EndpointsServicesModule, KeybaseModule, MexModule.forRoot(), diff --git a/src/crons/elastic.updater/elastic.updater.module.ts b/src/crons/elastic.updater/elastic.updater.module.ts index 3558388d6..787a305de 100644 --- a/src/crons/elastic.updater/elastic.updater.module.ts +++ b/src/crons/elastic.updater/elastic.updater.module.ts @@ -5,10 +5,12 @@ import { PersistenceModule } from 'src/common/persistence/persistence.module'; import { EndpointsServicesModule } from 'src/endpoints/endpoints.services.module'; import { ElasticUpdaterService } from './elastic.updater.service'; import { ApiMetricsModule } from 'src/common/metrics/api.metrics.module'; +import { EventEmitterModule } from '@nestjs/event-emitter'; @Module({ imports: [ ScheduleModule.forRoot(), + EventEmitterModule.forRoot({ maxListeners: 1 }), EndpointsServicesModule, AssetsModule, forwardRef(() => PersistenceModule), diff --git a/src/crons/status.checker/status.checker.module.ts b/src/crons/status.checker/status.checker.module.ts index 0586952ba..d9bd48cff 100644 --- a/src/crons/status.checker/status.checker.module.ts +++ b/src/crons/status.checker/status.checker.module.ts @@ -5,10 +5,12 @@ import { EndpointsServicesModule } from "src/endpoints/endpoints.services.module import { DynamicModuleUtils } from "src/utils/dynamic.module.utils"; import { StatusCheckerService } from "./status.checker.service"; import { ApiMetricsModule } from "src/common/metrics/api.metrics.module"; +import { EventEmitterModule } from "@nestjs/event-emitter"; @Module({ imports: [ ScheduleModule.forRoot(), + EventEmitterModule.forRoot({ maxListeners: 1 }), EndpointsServicesModule, ApiMetricsModule, ], diff --git a/src/crons/transaction.processor/batch.transaction.processor.module.ts b/src/crons/transaction.processor/batch.transaction.processor.module.ts index 10dfece28..9811c9d33 100644 --- a/src/crons/transaction.processor/batch.transaction.processor.module.ts +++ b/src/crons/transaction.processor/batch.transaction.processor.module.ts @@ -6,10 +6,12 @@ import { TransactionModule } from "src/endpoints/transactions/transaction.module import { DynamicModuleUtils } from "src/utils/dynamic.module.utils"; import { BatchTransactionProcessorService } from "./batch.transaction.processor.service"; import { ApiMetricsModule } from 'src/common/metrics/api.metrics.module'; +import { EventEmitterModule } from "@nestjs/event-emitter"; @Module({ imports: [ ScheduleModule.forRoot(), + EventEmitterModule.forRoot({ maxListeners: 1 }), ApiConfigModule, DynamicModuleUtils.getCacheModule(), TransactionsBatchModule, diff --git a/src/crons/transaction.processor/transaction.completed.module.ts b/src/crons/transaction.processor/transaction.completed.module.ts index 4bf021c84..fef98b90c 100644 --- a/src/crons/transaction.processor/transaction.completed.module.ts +++ b/src/crons/transaction.processor/transaction.completed.module.ts @@ -6,10 +6,12 @@ import { TransactionCompletedService } from './transaction.completed.service'; import { ApiMetricsModule } from 'src/common/metrics/api.metrics.module'; import { GatewayModule } from 'src/common/gateway/gateway.module'; import { ProtocolModule } from 'src/common/protocol/protocol.module'; +import { EventEmitterModule } from '@nestjs/event-emitter'; @Module({ imports: [ ScheduleModule.forRoot(), + EventEmitterModule.forRoot({ maxListeners: 1 }), ApiConfigModule, ApiMetricsModule, GatewayModule, diff --git a/src/crons/transaction.processor/transaction.processor.module.ts b/src/crons/transaction.processor/transaction.processor.module.ts index ef3df67c6..add0f1be2 100644 --- a/src/crons/transaction.processor/transaction.processor.module.ts +++ b/src/crons/transaction.processor/transaction.processor.module.ts @@ -8,10 +8,12 @@ import { NftWorkerModule } from 'src/queue.worker/nft.worker/nft.worker.module'; import { ApiMetricsModule } from 'src/common/metrics/api.metrics.module'; import { DynamicModuleUtils } from 'src/utils/dynamic.module.utils'; import { TransactionProcessorService } from './transaction.processor.service'; +import { EventEmitterModule } from '@nestjs/event-emitter'; @Module({ imports: [ ScheduleModule.forRoot(), + EventEmitterModule.forRoot({ maxListeners: 1 }), TransactionModule, ShardModule, NodeModule, diff --git a/src/crons/websocket/websocket.subscription.module.ts b/src/crons/websocket/websocket.subscription.module.ts index 8146dc3a6..d6cbd505d 100644 --- a/src/crons/websocket/websocket.subscription.module.ts +++ b/src/crons/websocket/websocket.subscription.module.ts @@ -19,10 +19,12 @@ import { ApiConfigModule } from 'src/common/api-config/api.config.module'; import { TransfersCustomGateway } from './transfers.custom.gateway'; import { TransferModule } from 'src/endpoints/transfers/transfer.module'; import { ApiMetricsModule } from 'src/common/metrics/api.metrics.module'; +import { EventEmitterModule } from '@nestjs/event-emitter'; @Module({ imports: [ ScheduleModule.forRoot(), + EventEmitterModule.forRoot({ maxListeners: 1 }), TransactionModule, BlockModule, NetworkModule, diff --git a/src/private.app.module.ts b/src/private.app.module.ts index 92428731e..1ea44382f 100644 --- a/src/private.app.module.ts +++ b/src/private.app.module.ts @@ -7,9 +7,13 @@ import { ProcessNftsModule } from './endpoints/process-nfts/process.nfts.module' import { LoggingModule } from '@multiversx/sdk-nestjs-common'; import { DynamicModuleUtils } from './utils/dynamic.module.utils'; import { ApiMetricsModule } from './common/metrics/api.metrics.module'; +import { EventEmitterModule } from '@nestjs/event-emitter'; +import { ScheduleModule } from '@nestjs/schedule'; @Module({ imports: [ + ScheduleModule.forRoot(), + EventEmitterModule.forRoot({ maxListeners: 1 }), LoggingModule, ProcessNftsModule, ApiMetricsModule, diff --git a/src/public.app.module.ts b/src/public.app.module.ts index 524185e66..7c083f1ba 100644 --- a/src/public.app.module.ts +++ b/src/public.app.module.ts @@ -11,9 +11,13 @@ import { DynamicModuleUtils } from './utils/dynamic.module.utils'; import { LocalCacheController } from './endpoints/caching/local.cache.controller'; import { RestrictedRoutesMiddleware } from './utils/restricted.routes.middleware'; import { ApiMetricsModule } from './common/metrics/api.metrics.module'; +import { ScheduleModule } from '@nestjs/schedule'; +import { EventEmitterModule } from '@nestjs/event-emitter'; @Module({ imports: [ + ScheduleModule.forRoot(), // for plugins, best practice not to have crons in public API + EventEmitterModule.forRoot({ maxListeners: 1 }), LoggingModule, EndpointsServicesModule, EndpointsControllersModule.forRoot(), diff --git a/src/queue.worker/nft.worker/queue/nft.queue.module.ts b/src/queue.worker/nft.worker/queue/nft.queue.module.ts index e2e42c4da..277d2e8ac 100644 --- a/src/queue.worker/nft.worker/queue/nft.queue.module.ts +++ b/src/queue.worker/nft.worker/queue/nft.queue.module.ts @@ -4,9 +4,13 @@ import { NftJobProcessorModule } from './job-services/nft.job.processor.module'; import { NftModule } from 'src/endpoints/nfts/nft.module'; import { DynamicModuleUtils } from 'src/utils/dynamic.module.utils'; import { ApiMetricsModule } from 'src/common/metrics/api.metrics.module'; +import { EventEmitterModule } from '@nestjs/event-emitter'; +import { ScheduleModule } from '@nestjs/schedule'; @Module({ imports: [ + ScheduleModule.forRoot(), + EventEmitterModule.forRoot({ maxListeners: 1 }), NftJobProcessorModule, NftModule, ApiMetricsModule,