node-amqp,限制侦听事件的套接字时间

时间:2018-01-28 20:58:39

标签: rabbitmq node-amqp node-amqplib

假设我喜欢我的rabbitmq队列上的100000个事件,那么限制系统串联处理它们的最佳方法是什么,而不是一次性消耗所有事件?

我尝试了几个选项,然而,机器冻结试图一次处理它们。

2 个答案:

答案 0 :(得分:1)

你可以这样做(假设你正在使用amqplib)

channel.get('queueName', (err, msgOrFalse) => {
    if (err) { 
        // Handle err
    } else if (msgOrFalse) {
       // Handle message
    }
};

这会逐个获取消息,因此并非一下子全部消息。当然,你需要反复打电话。

答案 1 :(得分:1)

我找到了答案,我只需要使用prefetch来确保我可以同时处理n个值。