【发布时间】:2023-11-14 09:11:01
【问题描述】:
假设我喜欢我的 rabbitmq 队列上的 100000 个事件,限制系统串联处理它们而不是尝试一次消耗所有事件的最佳方法是什么?
我正在尝试几个选项,但是,机器在尝试一次处理所有选项时冻结。
【问题讨论】:
标签: rabbitmq node-amqp node-amqplib
假设我喜欢我的 rabbitmq 队列上的 100000 个事件,限制系统串联处理它们而不是尝试一次消耗所有事件的最佳方法是什么?
我正在尝试几个选项,但是,机器在尝试一次处理所有选项时冻结。
【问题讨论】:
标签: rabbitmq node-amqp node-amqplib
您可以这样做(假设您使用的是 amqplib)
channel.get('queueName', (err, msgOrFalse) => {
if (err) {
// Handle err
} else if (msgOrFalse) {
// Handle message
}
};
这会一一获取消息,因此不是一次全部。你当然需要反复调用。
【讨论】:
我找到了答案,我只需要使用prefetch 来确保我可以一次处理n 个值。
【讨论】: