gpt4 book ai didi

node.js - 带有 NodeJS 的 RabbitMQ - 使用 amqplib 获取消息计数

转载 作者:搜寻专家 更新时间:2023-10-31 23:12:12 27 4
gpt4 key购买 nike

如何获取当前排队的消息数?

我的代码基本上如下:

function readQueue() {
var open = require('amqplib').connect(config.rabbitServer);

open.then(function (conn) {
var ok = conn.createChannel();
ok = ok.then(function (ch) {
ch.prefetch(config.bulkSize);

setInterval(function () {
handleMessages();
}, config.bulkInterval);

ch.assertQueue(config.inputQueue);
ch.consume(config.inputQueue, function (msg) {
if (msg !== null) {
pendingMessages.push(msg);
}
});
});
return ok;
}).then(null, console.warn);
}

我在文档中或调试时没有找到任何东西,我确实看到了一个允许这样做的不同库,所以想知道 amqplib 是否也支持它。

最佳答案

您可以使用 amqplib 获取队列长度。

在我的例子中,队列具有“durable:true”特性。您必须将其作为选项传递。

var amqp = require('amqplib/callback_api');

amqp.connect(amqp_url, function(err, conn) {
conn.createChannel(function(err, ch) {
var q = 'task2_queue';

ch.assertQueue(q, {durable: true}, function(err, ok) {
console.log(ok);
});
});
});

它将返回一个像这样的对象:

{ queue: 'task2_queue', messageCount: 34, consumerCount: 2 }

更多信息:https://www.squaremobius.net/amqp.node/channel_api.html#channel_assertQueue

关于node.js - 带有 NodeJS 的 RabbitMQ - 使用 amqplib 获取消息计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33984504/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com