我正在使用NestJS应用程序来使用RabbitMQ队列。每个消息都可以被处理,而不管顺序如何,所以我想知道为同一个队列声明新的使用者的最佳实践是什么。
**预期行为:**队列由使用多个使用者的此服务处理
队列:[1,2,3,4,5,6,... N];
在nestJS中,您可以使用@RabbitSubscribe
装饰器分配一个函数来处理数据。
@RabbitSubscribe({
...
queue: 'my-queue',
})
async firstSubscriber(data){
// 1, 3, 5...
}
@RabbitSubscribe({
...
queue: 'my-queue',
})
async secondSubscriber(data){
// 2, 4, 6...
}
我知道,我可以复制项目和规模的水平,但我更喜欢这样做,在同一个过程。
我如何通过编程声明订阅者来获得相同的行为,以便可以使用更多的并发处理来处理数据?
1条答案
按热度按时间9cbw7uwe1#
如果您使用@golevelup/nestjs-rabbitmq包,您将受益匪浅,因为它支持不同的消息队列消费,如果您的应用是混合型的,还可以支持更多。
那么nestjs应用程序结构应该如下所示
在src/app.module.ts文件中
并且在事件.module.ts文件中
下面是一个使用者模块的示例(someEventConsumerModule1.module.ts)
并在服务文件中放置业务逻辑如何处理消息