An AMQP connection service for NestJS.
This source code forked from semi-dead useful repository nestjsx/nestjs-amqp authored and maintained by @bashleigh
This repository intents to bring full functionality of amqplib to nestjs module base.
$ npm install --save sawakaga/nestjs-amqp
import { Module } from '@nestjs/common';
import { AmqpModule } from 'nestjs-amqp';
@Module({
imports: [
AmqpModule.forRoot({
name: 'rabbitmq',
hostname: 'localhost',
port: 5672,
username: 'test',
password: 'test',
}),
],
})
export default class AppModule {}
import { Module } from '@nestjs/common';
import { AmqpModule } from 'nestjs-amqp';
@Module({
imports: [
AmqpModule.forRoot([
{
hostname: 'test:test@localhost',
},
{
username: 'test',
password: 'test',
hostname: 'localhost',
port: 5672,
protocol: 'amqps',
name: 'test',
},
]),
],
})
export default class ExecutionModule {}
import { Injectable } from '@nestjs/common';
import { InjectAmqpConnection } from 'nestjs-amqp';
@Injectable()
export default class TestService {
constructor(
@InjectAmqpConnection('test') private readonly connectionTest, //gets connection with name 'test' defined in module
@InjectAmqpConnection(0) private readonly connection0, //gets first defined connection without a name
) {}
}
Use InjectAmqpConnection without a parameter for default connection
import { Injectable, Logger } from '@nestjs/common';
import { InjectAmqpConnection } from 'nestjs-amqp';
@Injectable()
export default class TestProvider {
constructor(@InjectAmqpConnection() private readonly amqp) {}
async publish(message: string) {
await this.amqp.createChannel((err, channel) => {
if (err != null) {
Logger.alert(err, 'TestProvider');
}
channel.assertQueue('test_queue_name');
channel.sendToQueue('test_queue_name', message);
});
}
}
More information and examples about amqplib can be found here.
Name | For | Default |
---|---|---|
hostname | The host url for the connection | localhost |
port | The port of the amqp host | 5672 |
name | The name of the connection | default or the array key index [0] |
retrys | The amount of retry attempts before surrender | 3 |
retryDelay | The amount of milliseconds to wait before attempting retry | 3000 |
protocol | The protocol for the connection | amqp |
username | The username for the connection | quest |
password | The password for the connection | quest |
locale | The desired locale for error messages | en_US |
frameMax | The size in bytes of the maximum frame allowed over the connection | 0 |
heartbeat | The period of the connection heartbeat in seconds | 0 |
vhost | What VHost shall be used | / |
$ jest