diff --git a/.env.example b/.env.example index 055b1008..a2e5f948 100644 --- a/.env.example +++ b/.env.example @@ -50,6 +50,7 @@ DATABASE_DELETE_MESSAGE=true RABBITMQ_ENABLED=false RABBITMQ_URI=amqp://localhost RABBITMQ_EXCHANGE_NAME=evolution +RABBITMQ_FRAME_MAX=8192 # Global events - By enabling this variable, events from all instances are sent in the same event queue. RABBITMQ_GLOBAL_ENABLED=false # Prefix key to queue name diff --git a/src/api/integrations/event/rabbitmq/rabbitmq.controller.ts b/src/api/integrations/event/rabbitmq/rabbitmq.controller.ts index 22defde5..89436f9f 100644 --- a/src/api/integrations/event/rabbitmq/rabbitmq.controller.ts +++ b/src/api/integrations/event/rabbitmq/rabbitmq.controller.ts @@ -21,9 +21,21 @@ export class RabbitmqController extends EventController implements EventControll await new Promise((resolve, reject) => { const uri = configService.get('RABBITMQ').URI; + const frameMax = configService.get('RABBITMQ').FRAME_MAX; const rabbitmqExchangeName = configService.get('RABBITMQ').EXCHANGE_NAME; - amqp.connect(uri, (error, connection) => { + const url = new URL(uri); + const connectionOptions = { + protocol: url.protocol.slice(0, -1), + hostname: url.hostname, + port: url.port || 5672, + username: url.username || 'guest', + password: url.password || 'guest', + vhost: url.pathname.slice(1) || '/', + frameMax: frameMax + }; + + amqp.connect(connectionOptions, (error, connection) => { if (error) { reject(error); diff --git a/src/config/env.config.ts b/src/config/env.config.ts index 57a84472..5a3b7bfa 100644 --- a/src/config/env.config.ts +++ b/src/config/env.config.ts @@ -95,6 +95,7 @@ export type EventsRabbitmq = { export type Rabbitmq = { ENABLED: boolean; URI: string; + FRAME_MAX: number; EXCHANGE_NAME: string; GLOBAL_ENABLED: boolean; EVENTS: EventsRabbitmq; @@ -391,6 +392,7 @@ export class ConfigService { PREFIX_KEY: process.env?.RABBITMQ_PREFIX_KEY, EXCHANGE_NAME: process.env?.RABBITMQ_EXCHANGE_NAME || 'evolution_exchange', URI: process.env.RABBITMQ_URI || '', + FRAME_MAX: Number.parseInt(process.env.RABBITMQ_FRAME_MAX) || 8192, EVENTS: { APPLICATION_STARTUP: process.env?.RABBITMQ_EVENTS_APPLICATION_STARTUP === 'true', INSTANCE_CREATE: process.env?.RABBITMQ_EVENTS_INSTANCE_CREATE === 'true',