假设我喜欢我的rabbitmq队列上的100000个事件,那么限制系统串联处理它们的最佳方法是什么,而不是一次性消耗所有事件?
我尝试了几个选项,然而,机器冻结试图一次处理它们。
答案 0 :(得分:1)
你可以这样做(假设你正在使用amqplib)
channel.get('queueName', (err, msgOrFalse) => {
if (err) {
// Handle err
} else if (msgOrFalse) {
// Handle message
}
};
这会逐个获取消息,因此并非一下子全部消息。当然,你需要反复打电话。
答案 1 :(得分:1)
我找到了答案,我只需要使用prefetch
来确保我可以同时处理n个值。