1.0.9 • Published 1 year ago
@skelmen/nestjs-azure-service-bus-module v1.0.9
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
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: 'connectionString2',
options: {} // Azure service bus client options
}),
inject: [],
},
]),
Service example
For messages scheduling pass updateTime
param to emit
method.
@Injectable()
export class AppService {
constructor(
@Inject('provider_name_1') private readonly serviceBusClient: AzureServiceBusClient,
) { }
getData(){
const options = {}; // Azure options for configuring tracing and the abortSignal
const payload = {
body: {
id: '39219'
}
};
this.serviceBusClient.emit({ payload, options });
}
scheduleData(){
const options = {};
const payload = {
body: {
id: '39219'
}
};
// (Optional) For scheduling messages
const updateTime = new Date('2023-02-20 13:26:00+02');
this.serviceBusClient.emit({ payload, options, updateTime });
}
}
Handle events
@Subscribe('service-bus-queue-name')
async handler(data) {
console.log(data);
}
License
This project is licensed under the MIT License