Skip to content

Commit fa19c7f

Browse files
committed
feat(rabbitmq): Add prefix key configuration for queue names
1 parent f11e324 commit fa19c7f

File tree

4 files changed

+19
-2
lines changed

4 files changed

+19
-2
lines changed

.env.example

+2
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ RABBITMQ_URI=amqp://localhost
4949
RABBITMQ_EXCHANGE_NAME=evolution
5050
# Global events - By enabling this variable, events from all instances are sent in the same event queue.
5151
RABBITMQ_GLOBAL_ENABLED=false
52+
# Prefix key to queue name
53+
RABBITMQ_PREFIX_KEY=evolution
5254
# Choose the events you want to send to RabbitMQ
5355
RABBITMQ_EVENTS_APPLICATION_STARTUP=false
5456
RABBITMQ_EVENTS_INSTANCE_CREATE=false

CHANGELOG.md

+6
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
# 2.2.2 (develop)
2+
3+
### Features
4+
5+
* Added prefix key to queue name in RabbitMQ
6+
17
# 2.2.1 (2025-01-22 14:37)
28

39
### Features

src/api/integrations/event/rabbitmq/rabbitmq.controller.ts

+9-2
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ export class RabbitmqController extends EventController implements EventControll
8787
const rabbitmqLocal = instanceRabbitmq?.events;
8888
const rabbitmqGlobal = configService.get<Rabbitmq>('RABBITMQ').GLOBAL_ENABLED;
8989
const rabbitmqEvents = configService.get<Rabbitmq>('RABBITMQ').EVENTS;
90+
const prefixKey = configService.get<Rabbitmq>('RABBITMQ').PREFIX_KEY;
9091
const rabbitmqExchangeName = configService.get<Rabbitmq>('RABBITMQ').EXCHANGE_NAME;
9192
const we = event.replace(/[.-]/gm, '_').toUpperCase();
9293
const logEnabled = configService.get<Log>('LOG').LEVEL.includes('WEBHOOKS');
@@ -159,7 +160,9 @@ export class RabbitmqController extends EventController implements EventControll
159160
autoDelete: false,
160161
});
161162

162-
const queueName = event;
163+
const queueName = prefixKey
164+
? `${prefixKey}.${event.replace(/_/g, '.').toLowerCase()}`
165+
: event.replace(/_/g, '.').toLowerCase();
163166

164167
await this.amqpChannel.assertQueue(queueName, {
165168
durable: true,
@@ -195,6 +198,7 @@ export class RabbitmqController extends EventController implements EventControll
195198

196199
const rabbitmqExchangeName = configService.get<Rabbitmq>('RABBITMQ').EXCHANGE_NAME;
197200
const events = configService.get<Rabbitmq>('RABBITMQ').EVENTS;
201+
const prefixKey = configService.get<Rabbitmq>('RABBITMQ').PREFIX_KEY;
198202

199203
if (!events) {
200204
this.logger.warn('No events to initialize on AMQP');
@@ -207,7 +211,10 @@ export class RabbitmqController extends EventController implements EventControll
207211
eventKeys.forEach((event) => {
208212
if (events[event] === false) return;
209213

210-
const queueName = `${event.replace(/_/g, '.').toLowerCase()}`;
214+
const queueName =
215+
prefixKey !== ''
216+
? `${prefixKey}.${event.replace(/_/g, '.').toLowerCase()}`
217+
: `${event.replace(/_/g, '.').toLowerCase()}`;
211218
const exchangeName = rabbitmqExchangeName;
212219

213220
this.amqpChannel.assertExchange(exchangeName, 'topic', {

src/config/env.config.ts

+2
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@ export type Rabbitmq = {
9797
EXCHANGE_NAME: string;
9898
GLOBAL_ENABLED: boolean;
9999
EVENTS: EventsRabbitmq;
100+
PREFIX_KEY: string;
100101
};
101102

102103
export type Sqs = {
@@ -355,6 +356,7 @@ export class ConfigService {
355356
RABBITMQ: {
356357
ENABLED: process.env?.RABBITMQ_ENABLED === 'true',
357358
GLOBAL_ENABLED: process.env?.RABBITMQ_GLOBAL_ENABLED === 'true',
359+
PREFIX_KEY: process.env?.RABBITMQ_PREFIX_KEY || 'evolution',
358360
EXCHANGE_NAME: process.env?.RABBITMQ_EXCHANGE_NAME || 'evolution_exchange',
359361
URI: process.env.RABBITMQ_URI || '',
360362
EVENTS: {

0 commit comments

Comments
 (0)