【问题标题】:node-amqp, limit the socket time for listening eventsnode-amqp,限制监听事件的套接字时间
【发布时间】:2023-11-14 09:11:01
【问题描述】:

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

我正在尝试几个选项,但是,机器在尝试一次处理所有选项时冻结。

【问题讨论】:

    标签: rabbitmq node-amqp node-amqplib


    【解决方案1】:

    您可以这样做(假设您使用的是 amqplib)

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 有道理,你可以限制队列中未确认消息的数量。大概这会限制客户端机器上的负载。
      最近更新 更多