UNPKG

amqplib

Version:

An AMQP 0-9-1 (e.g., RabbitMQ) library and client.

46 lines (37 loc) 1.26 kB
#!/usr/bin/env node var amqp = require('amqplib'); var all = require('bluebird').all; var basename = require('path').basename; var severities = process.argv.slice(2); if (severities.length < 1) { console.warn('Usage: %s [info] [warning] [error]', basename(process.argv[1])); process.exit(1); } amqp.connect('amqp://localhost').then(function(conn) { process.once('SIGINT', function() { conn.close(); }); return conn.createChannel().then(function(ch) { var ex = 'direct_logs'; var ok = ch.assertExchange(ex, 'direct', {durable: false}); ok = ok.then(function() { return ch.assertQueue('', {exclusive: true}); }); ok = ok.then(function(qok) { var queue = qok.queue; return all(severities.map(function(sev) { ch.bindQueue(queue, ex, sev); })).then(function() { return queue; }); }); ok = ok.then(function(queue) { return ch.consume(queue, logMessage, {noAck: true}); }); return ok.then(function() { console.log(' [*] Waiting for logs. To exit press CTRL+C.'); }); function logMessage(msg) { console.log(" [x] %s:'%s'", msg.fields.routingKey, msg.content.toString()); } }); }).catch(console.warn);