blob: fdb72dfdc3919267c13f4ae3767366c5b7e9df53 [file] [log] [blame]
#!/usr/bin/env node
// Process tasks from the work queue
var amqp = require('amqplib');
amqp.connect('amqp://localhost').then(function(conn) {
process.once('SIGINT', function() { conn.close(); });
return conn.createChannel().then(function(ch) {
var ok = ch.assertQueue('task_queue', {durable: true});
ok = ok.then(function() { ch.prefetch(1); });
ok = ok.then(function() {
ch.consume('task_queue', doWork, {noAck: false});
console.log(" [*] Waiting for messages. To exit press CTRL+C");
});
return ok;
function doWork(msg) {
var body = msg.content.toString();
console.log(" [x] Received '%s'", body);
var secs = body.split('.').length - 1;
//console.log(" [x] Task takes %d seconds", secs);
setTimeout(function() {
console.log(" [x] Done");
ch.ack(msg);
}, secs * 1000);
}
});
}).catch(console.warn);