node-amqp, ограничить время сокета для прослушивания событий
Предполагая, что мне нравится 100000 событий в моей очереди rabbitmq, каков наилучший способ ограничить систему, чтобы обрабатывать их последовательно, а не пытаться использовать все сразу?
Я пробую несколько вариантов, однако машина зависает, пытаясь справиться со всеми сразу.
2 ответа
Вы можете сделать (при условии, что вы используете amqplib)
channel.get('queueName', (err, msgOrFalse) => {
if (err) {
// Handle err
} else if (msgOrFalse) {
// Handle message
}
};
Это получает сообщения одно за другим, так что это не все сразу. Вам нужно позвонить несколько раз, конечно.
Я нашел свой ответ, мне просто нужно использовать prefetch
чтобы убедиться, что я могу обрабатывать n значений одновременно.