@cleardu/rmq
Version:
Nest - modern, fast, powerful node.js web framework (@rmq)
35 lines (31 loc) • 901 B
text/typescript
import { Injectable } from '@nestjs/common';
import { ConfigService } from '@nestjs/config';
import { RmqContext, RmqOptions, Transport } from '@nestjs/microservices';
()
export class RmqService {
constructor(private readonly configService: ConfigService) {}
// Method to get RMQ options based on provided parameters
getOptions(
queue: string,
noAck = false,
persistent = true,
prefetchCount = 1,
): RmqOptions {
return {
transport: Transport.RMQ,
options: {
urls: [this.configService.get<string>('RABBIT_MQ_URI') ?? ''],
queue: `${queue}_QUEUE`,
noAck,
persistent,
prefetchCount,
},
};
}
// Method to acknowledge an RMQ message
ack(context: RmqContext) {
const channel = context.getChannelRef();
const originalMessage = context.getMessage();
channel.ack(originalMessage);
}
}