노드 응용 프로그램에서 node-amqp를 큐 시스템으로 사용하고 있습니다. 대기열의 상태를 모니터링하여 충분한 인력이 있는지를 파악할 수 있습니다. 즉 대기열 크기가 증가하면 우리는 뒤쳐지기 시작합니다.node-amqp를 사용하여 큐에있는 메시지 수를 얻는 방법
나는 명령 줄에서 다음과 같은 것을 사용할 수 있음을 알고있다.
rabbitmqctl list_queues
나에게 내가 필요로하는 정확한 정보를 제공
하지만, 노드 AMQP 자체에서이 작업을 수행 어쨌든이 궁금 해서요?
미리 감사드립니다. 결국 편집
, 난 그냥이 아니 훌륭한 솔루션을 내가 필요한 정보를 얻기 위해 명령 줄 도구 rabbitmqctl을 사용하지만, 여기에 내가 무슨 짓을;
var Logger = require('arsenic-logger');
getQueueMeta(function(info){
Logger.info(info);
});
/**
* Returns a sparse array with the queue names as the indices
* and the number of messages as the value, e.g.;
*
* info = [ my-queue: 9, my-other-queue: 1 ]
*
* @param callback
*/
function getQueueMeta(callback){
var sys = require('sys')
var exec = require('child_process').exec;
exec("/usr/local/sbin/rabbitmqctl list_queues", function(error, stdout, stderr) {
var info = [];
if (!error){
var lines = stdout.split(/\n/);
if (lines.length > 1){
for (var i=1; i<lines.length-2; i++){
var temp = lines[i].split(/\s/);
info[temp[0].trim()] = parseInt(temp[1]);
}
}
}
callback(info);
});
}
감사, 노드 AMQP에 대한 소스 코드를보고 큐 개체를 검사하는 것은 슬프게도 어떤 메시지 나 소비자의 수는 (내가 볼 수) –
예, 내가 노드 AMQP의 코드를 보았고, 그것의가 없다 채우지 않습니다. .NET과 Java 라이브러리가 데이터를 가져올 수 있다면 데이터가 존재하고 단순히 노출되지 않을 가능성이 높습니다. –