@skelmen/nestjs-azure-service-bus-module
v1.1.0
Published
Azure Service Bus module for Nest.js framework
Downloads
15
Maintainers
Readme
Description
Azure Service Bus is a cloud based message broker. You can use Azure Service Bus to send messages between applications or services. It supports AMQP / STOMP protocols, automatic scalability and disaster recovery.
Azure Service Bus module for Nest.js based on the @azure/service-bus package.
Installation
$ npm i --save @skelmen/nestjs-azure-service-bus-module
Usage
Recommended Nest.js version >=10.0.0
Import module
AzureServiceBusModule.forRootAsync([
{
name: 'provider_name_1',
useFactory: (configService: ConfigService) => ({
connectionString: configService.get('connectionString1'),
options: {} // Azure service bus client options
}),
inject: [ConfigService],
},
{
name: 'provider_name_2',
useFactory: () => ({
connectionString: 'azure_service_bus_connection_string',
options: {} // Azure service bus client options
}),
},
]),
Service example
For messages scheduling pass updateTime
param to emit
method.
@Injectable()
export class AppService {
constructor(
@Inject('provider_name_1') private readonly serviceBusClient: AzureServiceBusClient,
) { }
async getData(){
const options = {}; // Azure options for configuring tracing and the abortSignal
const payload = {
body: {
id: '39219'
}
};
await this.serviceBusClient.emit({ payload, options });
}
async scheduleData(){
const options = {};
const payload = {
body: {
id: '39219'
}
};
// (Optional) For scheduling messages
const updateTime = new Date('2023-02-20 13:26:00+02');
await this.serviceBusClient.emit({ payload, options, updateTime });
}
}
Handle events
Add handler to your any service
@Subscribe('service-bus-queue-name') // Service bus queue name
async handler({ body }) {
console.log(body);
}
License
This project is licensed under the MIT License