$ npm i --save @coin-market-man/sqsTo consume data for a specific queue, you need to register it using the SQSModule, and provide a consumer class.
The consumer class is basically a class implementing the SQSMessageHandler interface, and decorated with @SQSConsumer. The @SQSConsumer annotation simply takes the name of the queue to consume.
For example:
// imports...
@SQSConsumer('test')
export class TestConsumer implements SQSMessageHandler {
handleMessage(message: SQS.Message): void {
console.log(`I received a message : ${message.Body}`);
}
}
@Module({
imports: [
SQSModule.register([
{ name: 'test' }
])
],
providers: [TestConsumer]
})
export class AppModule {}The consumer can provide an async handleMessage method aswell:
@SQSConsumer('test')
export class TestConsumer implements SQSMessageHandler {
constructor (private readonly myAwesomeService: MyAwesomeService) {}
async handleMessage(message: SQS.Message): Promise<void> {
await this.myAwesomeService.processMessage(body);
}
}Nest is MIT licensed.