node-amqp,限制监听事件的socket时间

node-amqp, limit the socket time for listening events

假设我喜欢 rabbitmq 队列上的 100000 个事件,限制系统连续处理它们与尝试一次消耗所有事件的最佳方法是什么?

我正在尝试多种选择,但是,机器在尝试同时处理所有选项时死机了。

你可以做到(假设你使用的是 amqplib)

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

这会一条一条地获取消息,因此不会一次全部获取。当然需要反复调用。

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