blob: ad7d0761a36ccd43d001d249f717dab59888f34b [file] [log] [blame]
#!/usr/bin/env node
var amqp = require('amqplib/callback_api');
function bail(err, conn) {
console.error(err);
if (conn) conn.close(function() { process.exit(1); });
}
function on_connect(err, conn) {
if (err !== null) return bail(err);
process.once('SIGINT', function() { conn.close(); });
var q = 'task_queue';
conn.createChannel(function(err, ch) {
if (err !== null) return bail(err, conn);
ch.assertQueue(q, {durable: true}, function(err, _ok) {
ch.consume(q, doWork, {noAck: false});
console.log(" [*] Waiting for messages. To exit press CTRL+C");
});
function doWork(msg) {
var body = msg.content.toString();
console.log(" [x] Received '%s'", body);
var secs = body.split('.').length - 1;
setTimeout(function() {
console.log(" [x] Done");
ch.ack(msg);
}, secs * 1000);
}
});
}
amqp.connect(on_connect);