UNPKG

amqplib

Version:

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

29 lines (25 loc) 902 B
#!/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);